Enhanced Entity Relationship Diagram/ EERD. Pemetaan
Diagram Hubungan Entitas (ERD) Kedalam Tabel
Setelah pemodelan Hubungan entitas yang digambarkan dengan
diagram
Hubungan entitas (ERD) dianggap sudah representatif, maka
langkah berikut adalah
memetakannya menjadi satu set tabel sebuah basis data.
2. Langkah-Langkah Pemetaan
• Setiap entitas tetap (regular entities) dipetakan menjadi
sebuah tabel, dan atribut-
atribut entitas tersebut menjadi atribut dari tabel yang
bersangkutan. Tetapkan
kunci primer atribut tersebut berdasarkan apa yang telah
diidentifikasi pada saat
melakukan pemodelan Hubungan entitas. Perhatikan
entitas-entitas tetap pada
diagram Hubungan entitas (ERD) pada Gambar 3-12, pemetaan
entitas tersebut
adalah sebagai berikut:
• Pegawai = NoPgw + NmPgw + {Pddk}
• NmPgw adalah atribut komposisi dari atribut NmAwal dan
NmKlg.
• Pddk adalah atribut komposisi berulang (repeating group)
atau
bernilai banyak (multivalue), terdiri dari NmPddk dan
ThLulus
• Divisi = NoDivisi + NmDivisi
• Proyek = NoProyek + NmProyek + Anggaran
• Tunjangan = KodeTnj + NmTnj
• Setiap entitas lemah (weak entities) dipetakan menjadi
sebuah tabel, atribut-atribut
entitas lemah tersebut menjadi atribut tabel yang
bersangkutan ditambah dengan
atribut kunci utama yang berasal dari entitas tetap yang
menjadi relasinya. Kunci
utama entitas atau tabel tersebut diambil dari atribut yang
ada pada entitas lemah
tersebut ditambah dengan atribut kunci entitas tetapnya.
Contoh, kunci utama
tabel Tanggungan adalah NamaTgg dan NoPgw, dimana NoPgw
adalah kunci utama tabel Pegawai yang merupakan relasi dari entitas Tanggungan,
lihat Gambar 3-12.
3. Hasil pemetaan entitas Tanggungan menjadi tabel
Tanggungan, yaitu:
• Tanggungan = NoPgw + NamaTgg + TgLahir
• Atribut-atribut komposisi yang terdapat pada suatu entitas
diubah menjadi atribut-
atribut sederhana yang merupakan komposisi atribut tersebut.
Atribut-atribut
sederhana tersebut tetap menjadi bagian dari entitas atau
tabel yang bersangkutan.
4. Tabel Pegawai memiliki atribut komposisi (bukan atribut
berulang), maka tabel
Pegawai menjadi:
• Pegawai = NoPgw + NmAwal + NmKlg + {Pddk}
• Atribut-atribut bernilai jamak (multivalue attributes)
dari suatu entitas Ei
dipisahkan dari entitas Ei, jadikan sebagai tabel tersendiri
yaitu Ej dan atribut-
atribut bernilai jamak tersebut menjadi atribut dari tabel
baru Ej. Tambahkan
kunci utama (primary key) Ki dari tabel Ei kedalam tabel
baru Ej. Pilih satu atau
lebih atribut tabel Ej bersama dengan Ki menjadi kunci utama
(primary key -
kompisisi) Kj dari tabel Ej. Atribut Ki menjadi kunci asing
(foreign key) bagi entitas
Ej. Perhatikan tabel Pegawai hasil pemetaan diatas masih
memiliki atribut berulang
(repeating group) atau bernilai banyak (multivalue) yaitu
Pddk, dan kebetulan
atribut tersebut juga merupakan atribut komposisi, maka
pemetaannya menjadi
sebagai berikut:
• Pegawai = NoPgw + NmAwal + NmKlg
• PdkPegawai = NoPgw + NmPddk + ThLulus
• Atau, tabel menjadi Pegawai = NoPgw + NmAwal + NmKlg +
NmPddk + ThLulus
(sebagai langkah kompromi)
• Hubungan P dengan kendala struktural one-to-one antara
entitas Ei dengan entitas Ej, pilih kunci Ki sebagai kunci asing bagi tabel Ej,
atau kunci Kj sebagai kunci asing bagi tabel Ei. Pemilihan kunci utama suatu
entitas dan dijadikan sebagai kunci asing bagi entitas lainnya didasarkan atas
banyak sedikitnya tuple masing-masing entitas, serta kemungkinan banyak
sedikitnya nilai kosong (null) pada kunci asing tersebut. Jika tuple pada
entitas atau tabel Ej lebih sedikit
dibandingkan dengan tuple pada Ei, maka Kj dipilih sebagai
kunci asing bagi
entitas atau tabel Ei, demikian pula sebaliknya. Jika
kemungkinan banyaknya nilai
kosong (null) kunci asing Ki pada Ej lebih sedikit
dibandingkan apabila Kj sebagai
kunci asing pada Ei maka Ki dipilih sebagai kunci asing,
demikian pula berlaku
sebaliknya. Atribit-atribut Hubungan disertakan menjadi
anggota dari entitas
dimana kunci asing ditempatkan. Sebagai contoh, Hubungan
Pimpin antara entitas
Pegawai dengan entitas Divisi, karena tidak setiap pegawai
menjadi pimpinan divisi (akan banyak nilai kosong), tetapi setiap divisi pasti
punya pimpinan (jumlah tuple lebih sedikit), maka kunci utama entitas Pegawai
yaitu NoPgw menjadi kunci asing bagi entitas atau tabel Divisi diberi nama
atribut MgrDivisi dan atribut Hubungan tglJabat menjadi bagian dari tabel
Divisi, lihat Gambar 3-12. Tabel hasil pemetaan Hubungan biner Pimpin dengan
kendala struktur one-to-one menjadi:
• Divisi = NoDivisi + NmDivisi + MgrDivisi + TglJabat
• Hubungan P dengan kendala struktural one-to-many antara
entitas Ei dengan
entitas Ej, pilih kunci utama dari entitas Ei dengan kendala
satu (one) menjadi
kunci asing bagi entitas Ej dengan kendala banyak (many).
Atribut-atribut
Hubungan menjadi bagian dari entitas dengan kendala
struktural banyak (many).
Contoh, Hubungan KerjaPada, maka pilih kunci utama dari
entitas atau tabel
Divisi (kendala satu) yaitu NoDivisi menjadi kunci asing
bagi entitas Pegawai
(Pegawai digunakan untuk menjelaskan bahwa seorang pegawai
dipekerjakan pada
suatu divisi tertentu, lihat Gambar 3-12. Atribut Hubungan
MulaiTgl pada
Hubungan KerjaPada menjadi bagian dari tabel Pegawai. Bila
NoPgw menjadi kunci
asing bagi entitas Divisi hal ini akan mengakibatkan entitas
tabel Divisi memiliki
atribut bernilai banyak (multivalue) dan hasl ini melanggar
aturan dasar basi data
model relasional (atribut atomik). Hasil pemetaan Hubungan
biner KerjaPada dan
Hubungan Tangani dengan kendala struktural one-to-many
adalah:
• Pegawai = NoPgw + NmAwal + NmKlg + NoDivisi + MulaiTgl
• Atau, Pegawai = NoPgw + NmAwal + NmKlg + NmPddk + ThLulus
+ NoDivisi + MulaiTgl
• Proyek = NoProyek + NmProyek + Anggaran + NoDivisi
• Hubungan P dengan kendala struktural many-to-many antara
entitas Ei dengan
entitas Ej, maka Hubungan P tersebut dijadikan sebagai
entitas atau tabel baru P.
Atribut-atribut Hubungan yang bukan atribut bentukan
(generated) menjadi elemen
dari entitas baru P. Tambahkan atribut kunci utama Ki dari
entitas Ei dan kunci
utama Kj dari entitas Ej, keduanya menjadi kunci asing bagi
entitas P. Kunci utama
(primary key) entitas P adalah berupa komposisi Ki dan Kj.
Contoh, Hubungan biner
Peroleh yang merelasikan entitas atau tabel Tunjangan dengan
entitas atau tabel
Pegawai dipetakan menjadi tabel Perolehan dengan kunci asing
terdiri dari NoPgw
(Pegawai) dan NoTnj (Tunjangan), lihat Gambar 3-12 dan
Gambar 3-13. Hasil
pemetaan Hubungan tersebut adalah:
• Perolehan = NoPgw + NoTnj + Nilai
• Atribut-atribut bentukan (generated) dihilangkan dari
keanggotaan entitas atau
tabel yang bersangkutan. Atribut Hubungan JmlPgw pada
Hubungan KerjaPada
adalah atribut bentukan yang dapat diperoleh dengan melakukan
operasi query
melalui fungsi agregat Count dalam SQL.
• Hubungan Q berderajat-n (selain berderajat dua), maka
Hubungan tersebut
dijadikan entitas atau tabel Q tersendiri dengan kunci utama
Kq (komposisi) yang
berasal dari kunci utama dari entitas-entitas yang berelasi.
Bila ada atribut
Hubungan pada Q maka atribut Hubungan tersebut menjadi
bagian dari entitas
atau tabel Q. Hubungan derajat tiga (ternary) Jamin yang
merelasikan entitas
Pegawai, entitas Tunjangan, dan entitas Proyek menjadi
entitas atau tabel
tersendiri yaitu tabel Fasilitas, lihat Gambar 3-12 dan
Gambar 3-13. Atribut NoPgw
(Pegawai), NoTnj (Tunjangan), dan NoProyek (Proyek) menjadi
kunci asing bagi tabel
Jamin serta sekaligus menjadi kunci utama. Tabel hasil
pemetaan Hubungan
Jamin adalah sebagai berikut:
• Fasilitas = NoPgw + NoTnj + NoProyek + Nilai
• Pada Hubungan rekursif R (binary relationship) terhadap
entitas E, pemetaan
dilakukan menggunakan apa yang berlaku pada pemetaaan Hubungan
biner P.
Atribut kunci K entitas E sekaligus menjadi kunci asing F
bagi entitas E tersebut
(one-to-one dan one-to-many). Meski atribut kunci K sama
dengan atribut F tetapi
peran mereka berbeda, maka agar tetap konsisten dengan
aturan yang berlaku
pada model relasional, maka digunakan nama yang berbeda
yaitu F. Atribut-atribut
Hubungan yang muncul pada R disertakan menjadi bagian dari
entitas R tersebut.
Hubungan Supervisi pada Gambar 3-12 adalah suatu Hubungan
rekursif terhadap
entitas yang sama yaitu Pegawai. Atribut NoPgw sebagai kunci
atribut entitas
Pegawai juga sekaligus berperan lain, oleh karena Hubungan
ini menjelaskan relasi
antara pegawai yang menyelia (mensupervisi, kendala satu)
dengan pegawai yang
diawasi (disupervisi, kendala banyak). Nama atribut yang
tepat adalah nama yang
dapat menjelaskan siapa yang mensupervisi pegawai yang
bersangkutan (NoSpvr),
sehingga tabel hasil pemetaan tersebut adalah sebagai
berikut:
• Pegawai = NoPgw + NmAwal + NmKlg + NoDivisi + MulaiTgl +
NoSpvr
• Atau, Pegawai = NoPgw + NmAwal + NmKlg + NmPddk + ThLulus
+ NoDivisi +
MulaiTgl + NoSpvr
Biasanya tabel-tabel hasil pemetaan diatas sudah memenuhi
tingkat normal dua
(2NF) atau normal tiga (3NF). Namun demikian lakukan
evaluasi tingkat normal
(normal form) dari tabel-tabel yang diperoleh dari hasil
pemetaa tersebut. Apabila suatu
tabel belum mencapai tingkat normal tertentu yang diharapkan
(misal: belum mencapai 3NF, atau 4NF) maka lakukan normalisasi hingga dicapai
tingkat normal
tersebut. Tabel-tabel hasil pemetaan contoh diatas adalah
sebagai berikut:
• Pegawai = NoPgw + NmAwal + NmKlg + NoDivisi + MulaiTgl +
NoSpvr
• PdkPegawai = NoPgw + NmPddk + ThLulus
• Atau, Pegawai = NoPgw + NmAwal + NmKlg + NmPddk + ThLulus
+ NoDivisi +
MulaiTgl + NoSpvr; [Bila tabel ini yang digunakan maka tabel
PddkPegawai tidak
diperlukan lagi]
• Fasilitas = NoPgw + NoTnj + NoProyek + Nilai
• Perolehan = NoPgw + NoTnj + Nilai
• Proyek = NoProyek + NmProyek + Anggaran + NoDivisi
• Divisi = NoDivisi + NmDivisi + MgrDivisi + TglJabat
• Tanggungan = NoPgw + NamaTgg + TgLahir
• Tunjangan = KodeTnj + NmTnj
Jika diamati lebih seksama maka tabel Pegawai dalam bentuk
kompromi, meski
jumlah tabel menjadi lebih sedikit namun belum mencapai
normal kedua (2NF),
sedangkan tabel lainnya telah mencapai normal ketiga (3NF).
Tabel tersebut masih
memiliki unsur ketergantungan parsial (partial dependency),
setidaknya pada atribut
NmAwal tidak tergantung sepenuhnya (fully functional
dependency) pada atribut NoPgw
dan NmPddk. Oleh sebab itu tabel Pegawai harus dilakukan
normalisasi ke tingkat dua
(2NF) melalui dekomposisi dan diperoleh dua tabel, yaitu
Pegawai dan PddkPegawai
(sesuai dengan langkah pemetaan standar).
Pada umumnya bila tabel-tabel yang diperoleh telah mencapai
normal ketiga
(3NF) dianggap sudah memadai, maka koleksi tabel dari basis
data diatas terdiri dari:
Pegawai, PddkPegawai, Tangggungan, Divisi, Proyek,
Tunjangan, Perolehan, dan
Fasilitas.
Bila sudah diperoleh tabel-tabel akhir yang dianggap representatif
dan dapat
mendukung semua informasi yang direncanakan, nyatakan
tabel-tabel tersebut
berserta Hubungannya dalam bentuk diagram Hubungan entitas
final (ERD).
5. Perluasan ER (Extended ER)
Kelebihan dari pemodelan Hubungan entitas adalah sebagai
alat untuk
mengidentifikasi obyek-obyek sebagai entitas yang saling
berinteraksi didalam suatu
sistem dan memungkinkan memperoleh gambaran sistem secara
menyeluruh (holistik).
Pada tingkat tertentu diagram Hubungan entitas (ERD) sebagai
media untuk
menjelaskan pemodelan tersebut sangat membantu, namun
memiliki keterbatasan
yaitu kurang dapat menjelaskan secara rinci entitas yang
kompleks. Didalam aplikasi
yang sesungguhnya terkadang ditemui entitas yang kompleks,
dan hal ini menyulitkan
pada waktu menggambarkannya dalam bentuk diagram Hubungan
entitas (ERD).
Kesulitan tersebut disebabkan karena keterbatasan
konsep-konsep dan notasi yang
dimiliki oleh ERD, akibatnya apa yang digambarkan oleh ERD
cenderung terkesan
menyederhanakan permasalahan yang sesungguhnya, dan lebih
menggambarkan
sistem secara umum.
Sebagai contoh, entitas Pegawai didalam sebuah perusahaan
biasanya tidak
homogen, misalnya ditinjau dari jenis pekerjaannya ada
kelompok pegawai yang
bekerja berhubungan dengan kegiatan adminisitrasi dan ada
kelompok pegawai yang
bekerja berhubungan dengan kegiatan produksi, oleh karenanya
tentu dibutuhkan
jenis ketrampilan yang berbeda. Contoh lain mengenai entitas
Pegawai dihubungkan
dengan status kepegawainnya, yaitu ada sekelompok pegawai
dikategorikan sebagai
pegawai tetap dan kelompok lain adalah pegawai harian.
Kelompok pegawai tetap
selain memiliki atribut nomor pegawai (NoPgw), nama awal
(NmAwal), nama keluarga
(NmKlg), dan mulai dipekerjakan (MulaiTgl), juga perlu
atribut golongan pegawai
(GolPgw) serta jabatan yang dipegang (Jabatan). Kelompok
pegawai harian selain
memiliki atribut nomor pegawai (NoPgw), nama awal (NmAwal),
nama keluarga (NmKlg), dan mulai dipekerjakan (MulaiTgl), juga perlu atribut
upah perharinya (UpHarian) yang tidak diperlukan pada kelompok pegawai tetap.
Entitas Pegawai dapat digambarkan dengan ERD yaitu menggabungkan semua atribut
dari kelompok pegawai yang ada sehingga susunan atributnya terdiri dari: NoPgw,
NmAwal, NmKlg, MulaiTgl, GolPgw, Jabatan, dan UpHarian. Konsekuensi dari skema
relasi Pegawai tersebut adalah
apabila tuple relasi yang bersangkutan merupakan pegawai
harian maka atribut GolPgw dan Jabatan dikosongkan, demikian pula sebaliknya
apabila tuple relasi tersebut adalah pegawai tetap maka atribut UpHarian
dikosongkan.
Solusi untuk mengatasi kelemahan yang terdapat pada diagram
Hubungan
entitas (ERD) adalah melakukan perluasan terhadap ERD yang
disebut sebagai
perluasan pemodelan Hubungan entitas (extended entity
relationship diagram - EERD)
yaitu menambahkan konsep dan notasi mengenai spesialisasi
(specialization) dan
generalisasi (generalization) dalam bentuk relasi ISA (baca:
is e) yang digambarkan
dengan simbol segitiga terbalik (∇).
6. Spesialisasi (Specialization)
Sebuah entitas S dikatakan sebagai sebuah spesialisasi dari
entitas lainya yaitu
G, apabila entitas S tersebut memiliki karakteristik yang
berbeda dengan entitas G
karena pada entitas spesialisasi S terdapat atau memiliki
atribut Ak+1 yang khas dan
tidak dimiiliki entitas G. Namun demikian entitas
spesialisasi S memiliki hubungan
relasi ISA dengan entitas G yang berbeda itu, implikasi dari
hubungan relasi ISA yaitu
atribut-atribut Ak yang dimiliki oleh entitas G dimiliki
pula oleh entitas spesialisasi S,
sehinggan atribut entitas S terdiri dari Ak dan Ak+1.
Entitas spesialiasasi kadang
disebut entitas subtipe (subtype). Entitas PgwTetap dan
entitas PgwHarian adalah
merupakan entitas spesialisasi dari entitas Pegawai (lihat
Gambar 3-14). Meski entitas
PgwTetap dan entitas PgwHarian merupakan spesialisasi dari
entitas yang sama yaitu
Pegawai, namun keduanya adalah entitas yang berbeda, pada
entitas PgwTetap
memiliki atribut khas yaitu GolPgw dan Jabatan, sedangkan
entitas PgwHarian
memiliki atribut khas UpHarian yang tidak dimiliki oleh
entitas PgwTetap.
7. Generalisasi (Generalization)
Suatu entitas G merupakan entitas generalisasi apabila
atribut-atribut Ak entitas
G dimiliki oleh entitas S yang memiliki relasi ISA dengan
entitas G. Generalisasi adalah
merupakan cara pandang dari sisi lain terhadap spesialisasi.
Entitas Pegawai
merupakan entitas generalisasi bagi entitas PgwTetap dan
PgwHarian, dengan
demikian atribut-atribut yang dimiliki oleh entitas Pegawai
yaitu NoPgw, NmAwal,
NmKlg, dan MulaiTgl secara otomatis dimiliki oleh kedua
entitas spesialis tersebut
(lihat Gambar 3-14). Maka entitas PgwTetap secara konseptual
terdiri dari atribut
NoPgw, NmAwal, NmKlg, MulaiTgl, GolPgw, dan Jabatan
sedangkan enitas PgwHarian
secara konseptual terdiri dari atribut NoPgw, NmAwal, NmKlg,
MulaiTgl, dan UpHarian.
8. Pemetaan Relasi ISA
Pemetaan entitas dalam relasi ISA adalah sebagai berikut,
entitas G dipetakan
menjadi entitas tersendiri G dan atribut-atribut entitas
tersebut sebagai elemen atribut
dari relasi G. Entitas spesialisasi S1 dengan atribut
spesialisasi Am memiliki relasi ISA
G dipetakan menjadi relasi atau tabel S1 dengan atribut Am
sebagai elemen atributnya
ditambah dengan atribut kunci primer Kg dari entitas G
sebagai atribut kunci primer
bagi entitas S1. Entitas spesialisasi S2 dengan atribut
spesialisasi An memiliki relasi ISA
G dipetakan menjadi relasi S2 dengan atribut An sebagai
elemen atributnya ditambah
dengan atribut kunci primer Kg dari entitas G sebagai
atribut kunci primer bagi entitas
S2.
Pemetaan relasi ISA antara entitas Pegawai (generalisasi)
dengan entitas
PgwTetap dan PgwHarian (spesialisasi) pada Gambar 3-14
adalah sebagai berikut:
• Pegawai = NoPgw + NmAwal + NmKlg + MulaiTgl
• PgwTetap = No_pgw + GolPgw + Jabatan
• PgwHarian = NoPgw + UpHarian
0 komentar:
Posting Komentar