PEMETAAN ER KE RELASIONAL
Skema relasional yang ditunjukan dalam Gambar 2 diperoleh dari skema ER
pada Gambar 1 dengan mengikuti prosedur pemetaan umum. Untuk ilustrasi tiap
langkah akan dipakai contoh skema PERUSAHAAN. Ingat bahwa konsep penting dari
model E-R adalah tipe entitas (regular dan lemah), tipe relationship dengan
derajat-derajat yang berbeda (unari, binary, dan ternary), atribut-atribut
(sederhana, bernilai banyak, dan komposit).
Gambar 1: Diagram E-R Database PERUSAHAAN
Skema relasional yang ditunjukan dalam Gambar 2 diperoleh dari diagram E-R
pada Gambar 1 dengan mengikuti prosedur pemetaan umum. Untuk ilustrasi tiap
langkah akan dipakai contoh skema PERUSAHAAN.
Langkah 1: Untuk
setiap tipe entitas regular E dalam skema ER, kita membuat suatu relasi R
dengan memasukan semua atribut sederhana yang ada pada E. Untuk atribut
komposit kita memasukan komponen-komponen sederhana dari atribut komposit tersebut.
Kita memilih satu dari atribut-atribut kunci atau key dari E sebagai kunci
utama atau primary key dari E. Jika kunci E yang terpilih komposit maka
kumpulan atribut sederhana yang membentuknya akan secara bersama-sama membentuk
kunci utama R.
Pada contoh ini, kita membuat relasi PEGAWAI, DEPARTEMEN, dan PROYEK dalam
Gambar 2 bersesuaian dengan tipe entitas regular PEGAWAI, DEPARTEMEN, dan
PROYEK. Kita memilih NoPeg, NoDep, dan NoPro sebagai kunci utama berturut-turut
untuk relasi PEGAWAI, DEPARTEMEN, dan PROYEK.
PEGAWAI
[NamaPeg, NoPeg, TglLhr, Jk, Alamat, Gaji]
k.u
DEPARTEMEN
[NamaDep, NoDep]
k.u
PROYEK
[NamaPro, NoPro, Lokasi]
k.u
Langkah 2: Untuk
setiap tipe entitas lemah L dalam diagram ER dengan tipe entitas pemilik E,
kita membuat suatu relasi R dan memasukan semua atribut sederhana (atau
komponen-komponen sederhana dari atribut komposit) dari L sebagai
atribut-atribut R. Disamping itu, kita memasukan sebagai atribut kunci asing
atau foreign key dari R, atribut kunci utama dari relasi yang bersesuaian
dengan tipe entitas pemilik E. Ini untuk mengatasi identifikasi tipe
relationship L. Kunci utama dari R ialah kombinasi dari kunci utama dari
pemilik dan kunci parsial dari tipe entitas lemah L.
Pada contoh, kita membuat relasi TANGGUNGAN pada langkah ke-2 ini
bersesuaian dengan tipe entitas lemah TANGGUNGAN. Kita memasukan kunci utama
relasi PEGAWAI – bersesuaian dengan tipe entitas pemilik – sebagai atribut
TANGGUNGAN. Kunci utama dari relasi TANGGUNGAN ialah kombinasi
[NoPeg,NamaTanggungan] karena NamaTanggungan merupakan kunci parsial dari
TANGGUNGAN.
TANGGUNGAN
[NoPeg, NamaTanggungan, Jk, TglLhr, Hubungan]
k.u
Langkah 3: Untuk
setiap relationship bineri 1:1 R dalam skema ER, kita mengidentifikasi relasi S
dan T yang bersesuaian dengan tipe-tipe entitas yang berpartisipasi dalam R.
Kita memilih satu relasi, misal S, dan memasukan kunci utama dari T sebagai
kunci asing dalam S. Lebih baik memilih relasi dengan partisipasi obligasi
dalam R. Kita memasukan semua atribut sederhana (atau komponen-komponen
sederhana dari atribut komposit) dari tipe relationship biner 1:1 R sebagai
atribut-atribut S.
Pada contoh, kita memetakan tipe relationship 1:1 MENGELOLA dari Gambar 1
dengan memilih tipe entitas DEPARTEMEN berperan sebagai S karena partisipasinya
obligasi dalam relationship MENGELOLA (yakni, setiap departemen memiliki
manajer). Kita memasukan kunci utama dari relasi PEGAWAI sebagai kunci asing dalam
relasi DEPARTEMEN dan memberi nama ulang atribut ini menjadi NoPegMjr. Kita
juga memasukan atribut sederhana TglMulai dari tipe relationship MENGELOLA ke
dalam relasi DEPARTEMEN dan memberi nama ulang atribut ini menjadi TglMulaiMjr,
sehingga relasi DEPARTEMEN menjadi
DEPARTEMEN
[NamaDep, NoDep, NoPegMjr, TglMulaiMjr]
k.u k.a
Perhatikan bahwa pemetaan alternatif untuk suatu tipe relationship 1:1
ialah dengan menggabungkan dua tipe entitas dan relationship menjadi satu
relasi. Hal ini tepat ketika kedua tipe entitas memiliki partisipasi obligasi
dan ketika tipe-tipe entitas ini tidak berpartisipasi dengan tipe relationship
yang lainnya.
Langkah 4: Untuk
setiap tipe relationship biner 1:n regular (bukan lemah) R, kita
mengidentifikasi relasi S yang merepresentasi tipe entitas pada sisi-N dari
tipe relationship tersebut. Kita memasukan sebagai kunci asing, kunci utama dari
relasi T yang merepresentasi tipe entitas lainnya yang berpartisipasi dalam R.
Ini karena tipa instansi entitas pada sisi-N terhubung ke paling banyak satu
instansi entitas pada sisi-1 dari tipe relationship.
Sebagai contoh, pada tipe relationship 1:N BEKERJA_UNTUK, tiap pegawai
terhubung ke satu departemen. Kita memasukan atribut-atribut sederhana (atau
komponen-komponen sederhana dari atribut komposit) dari tipe relationship 1:N
sebagai atribut-atribut S.
Sekarang kita memetakan tipe relationship 1:N BEKERJA_UNTUK dan SUPERVISI
dari Gambar 1. Untuk BEKERJA_UNTUK kita memasukan kunci utama dari relasi
DEPARTEMEN sebagai kunci asing dalam relasi PEGAWAI dan memberinya nama
NomorDep. Untuk SUPERVISI kita memasukan kunci utama dari relasi PEGAWAI sebagai
kunci asing dalam relasi PEGAWAI itu sendiri dan memberinya nama NoPegSpv.
Relationship KONTROL dipetakan dengan cara yang sama. Relasi PEGAWAI menjadi
PEGAWAI
[NamaPeg, NoPeg, TglLhr, Jk, Alamat, Gaji, NomorDep, NoPegSpv]
k.u k.a k.a
Langkah 5: Untuk
tiap relationship biner M:N R, kita membuat suatu relasi baru S untuk
merepresentasi R. Kita memasukan, sebagai atribut kunci asing dari S, kunci
utama dari relasi-relasi yang merepresentasi partisipasi tipe-tipe entitas.
Kombinasi kunci-kunci utama ini
membentuk kunci utama dari S. Kita juga memasukan atribut-atribut sederhana
(atau komponen-komponen sederhana dari atribut komposit) sebagai atribut-atribut
S.
Perhatikan bahwa kita tidak dapat merepresentasikan suatu tipe relationship
lemah dengan satu atribut kunci asing pada satu dari relasi-relasi yang turut
serta dalam relationship – seperti kita lakukan untuk tipe relationship 1:1
atau 1:N – karena kardinalitas M:N.
Pada contoh kasus ini kita memetakan tipe relationship M:N BEKERJA_PADA
dari Gambar 1 dengan membuat relasi BEKERJA_PADA. Kita memasukan kunci utama
dari relasi PROYEK dan PEGAWAI sebagai kunci asing dalam BEKERJA_PADA dan
menamakan kembali masing-masing menjadi NoProyek dan NomorPeg. Kita juga
memasukan atribut JamKerja dalam BEKERJA_PADA. Kunci utama dari relasi
BEKERJA_PADA ialah kombinasi atribut-atribut kunci asing (NoP, NoProyek).
BEKERJA_PADA
k.a k.a
[NoP, NoProyek, JamKerja]
k.u
Amati bahwa kita selalu dapat memetakan relationship 1:1 atau 1:N dengan
cara yang sama dengan relationship M:N. Alternatif ini khusus bermanfaat ketika
terdapat sedikit instansi relationship dan menghindari nilai null pada kunci
asing.
Langkah 6: Untuk
tiap atribut bernilai banyak A, kita membuat suatu relasi baru R yang memasukan
suatu atribut yang bersesuaian dengan A ditambah atribut kunci utama K dari
relasi yang merepresentasi tipe entitas atau tipe relationship yang memiliki A
sebagai atribut. Kunci utama dari R adalah kombinasi A dan K. Jika atribut
bernilai banyak ini komposit, kita memasukan komponen-komponen sederhananya.
Pada contoh, kita membuat relasi LOKASI_DEP. Atribut Lokasi merepresentasi
atribut bernilai banyak Lokasi dari DEPARTEMEN, sementara NoDep – sebagai kunci
asing – merepresentasi kunci utama dari relasi DEPARTEMEN. Kunci utama dari
LOKASI_DEP ialah kombinasi dari (NoDep, Lokasi). Tupel terpisah akan muncul
untuk setiap lokasi yang dimiliki oleh suatu departemen.
LOKASI_DEP
[NoDep, Lokasi]
k.u
Keseluruhan hasil pemetaan database PERUSAHAAN menjadi sebagai berikut:
PEGAWAI
[NamaPeg, NoPeg, TglLhr, Jk, Alamat, Gaji, NomorDep, NoPegSpv]
k.u k.a k.a
DEPARTEMEN
[NamaDep, NoDep, NoPegMjr, TglMulaiMjr]
k.u k.a
PROYEK
[NamaPro, NoPro, Lokasi, NoDep]
k.u k.a
LOKASI_DEP
[NoDep, Lokasi]
k.u
BEKERJA_PADA
k.a k.a
[NoP, NoProyek, JamKerja]
k.u
TANGGUNGAN
[NoPeg, NamaTanggungan, Jk, TglLhr, Hubungan]
k.u
EmoticonEmoticon