Minggu, 30 Juli 2017

Pemetaan ER KE Relasional

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