Page 1
BASIS DATA (BS203)
k_doroedi@yahoo.com
fb: NDoro Edi MODEL ENTITY RELATIONSHIP
Outline
• Varian Relasi (Biner & Non-biner)
• Himpunan Entitas Lemah (Weak Entity) • ER yang diperluas (Extended ER)
• Merancang ER Model
• Entity Relationship Diagram (tambahan) • Latihan soal
Page 3
Outline
• Varian Relasi (Biner & Non-biner)
• Himpunan Entitas Lemah (Weak Entity) • ER yang diperluas (Extended ER)
• Merancang ER Model
• Entity Relationship Diagram (tambahan) • Latihan soal
Relasi Biner Vs. Non Biner
• Relasi pada basis data pada umumnya adalah relasi
biner (binary relationship). Artinya, relasi tersebut hanya menghubungkan 2 entitas.
• Relasi yang menghubungkan lebih dari 2 entitas disebut dengan relasi non-biner (n-ary relationship).
N = jumlah entitas yang dihubungkan.
• Contoh relasi non-biner: relasi “orang tua”
Page 5
Relasi Biner Vs. Non Biner
• Relasi non-biner pada umumnya dapat diubah menjadi beberapa relasi biner
• Contoh: relasi “orang tua” di ubah menjadi 2 relasi, yaitu: relasi “ayah” dan “ibu” yang masing-masing
Page 7
Mengubah relasi non-biner ke relasi biner
• Pada prakteknya, suatu himpunan relasi non-biner selalu dapat diubah menjadi beberapa himpunan relasi biner
• Contoh:
Himpunan relasi R menghubungkan himpunan entitas A, B, dan C • Kita dapat mengubah himpunan relasi R menjadi himpunan entitas
• Apabila himpunan relasi R memiliki atribut, maka atribut ini harus dimasukkan ke dalam himpunan E.
• Untuk himpunan entitas E tsb, kita buat atribut key baru
(identifying attribute) untuk membedakan satu entitas dengan entitas yang lainnya.
• Untuk setiap relasi (ai, bi, ci) pada himpunan relasi R, kita buat entitas baru ei pada himpunan entitas E.
• Lalu, untuk setiap himpunan relasi yang baru (Ra, Rb, & Rc), kita masukkan relasi sebagai berikut:
– (ei, ai) pada relasi Ra – (ei, bi) pada relasi Rb
Page 9
Contoh Kasus Relasi 3-ary
• Relasi R:
Budi (ai) bekerja sebagai Manajer (bi) di BCA Maranatha (ci) • Entitas e1 berisi: Budi, Manajer, BCA Maranatha
• Setelah himpunan entitas E terbentuk, barulah kita buat 3 relasi sbb:
• ((Budi, Manajer, BCA Maranatha), Budi) pada Ra
• ((Budi, Manajer, BCA Maranatha), Manajer) pada Rb
ATTENTION PLEASE!!!
• Tidak semua Relasi Multi Entitas dapat dirubah menjadi Relasi Biner! Kenapa demikian?
Page 11
Outline
• Varian Relasi (Biner & Non-biner)
• Himpunan Entitas Lemah (Weak Entity)
• ER yang diperluas (Extended ER) • Merancang ER Model
• Entity Relationship Diagram (tambahan) • Latihan soal
Himpunan Entitas Lemah
• Suatu himpunan entitas kadang-kadang tidak memiliki atribut-atribut yang dapat dijadikan
primary key.
• „Himpunan entitas semacam itu dinamakan “himpunan entitas lemah”
• „Himpunan entitas yang memiliki primary key dinamakan “himpunan entitas kuat.
Page 13
Contoh Kasus
• Himpunan entitas LOAN & entitas PAYMENT
• Himpunan entitas PAYMENT memiliki 3 atribut:
PAYMENT_number, PAYMENT_date, PAYMENT_amount
• PAYMENT_number biasanya berupa bilangan sequensial (1,2,3, dst) yang dibuat untuk setiap LOAN. Artinya, payment untuk loan yang berbeda
dpat berbagi nomor payment yang sama (tidak unik). • Oleh karena itulah, himpunan entitas PAYMENT ini
tidak memiliki primary key sehingga disebut sebagai entitas lemah.
Himpunan Entitas Lemah (2)
• Himpunan entitas lemah (W) harus dihubungkan entitas lain, yang disebut dengan himpunan entitas pemilik atau himpunan entitas pengidentifikasi (E). (identifying or owner entity set)
• Relasi antara himpunan entitas lemah (W) dengan himpunan entitas kuat (E) tersebut disebut
“identifying relationship”
• Relasi ini bersifat many-to-one dari entitas W ke entitas E.
Page 15
Key
untuk himpunan Entitas Lemah
• Walaupun himpunan entitas lemah tidak memiliki key, kita tetap harus mampu membedakan setiap anggota entitas secara unik
• Himpunan entitas lemah hanya memiliki discriminator
untuk membedakan anggota entitasnya. Misal: PAYMENT_number
• Discriminator ini seringkali disebut partial key.
• Primary key untuk himpunan entitas lemah adalah
gabungan dari primary key entitas kuat dengan partial key
tersebut.
• Jadi, untuk himpunan entitas lemah PAYMENT, primary key-nya adalah {LOAN_number, PAYMENT_number}
Notasi Himpuan Entitas Lemah
• Lambang himpunan entitas lemah: persegi panjang ganda.
• Discriminator dari himpunan entitas lemah harus digarisbawahi dgn garis
putus-putus.
• Himpunan Relasi yang menghubungkan himpunan entitas Lemah dan kuat
dilambangkan dengan belah ketupat ganda.
Page 17
Himpunan Entitas Lemah (3)
Contoh Lain dari
Himpunan Entitas Lemah
• Penawaran mata kuliah di universitas. Mata kuliah yang sama mungkin ditawarkan di semester yang berbeda dan dalam satu
semester, mungkin ada beberapa kelas (kelas A, B, atau C).
• Entitas: mata_kuliah, mata_kuliah_tawaran
• Diskriminator dari mata_kuliah_tawaran adalah semester (termasuk year) dan kelas.
Page 19
Outline
• Varian Relasi (Biner & Non-biner)
• Himpunan Entitas Lemah (Weak Entity)
• ER yang diperluas (Extended ER)
• Merancang ER Model
• Entity Relationship Diagram (tambahan) • Latihan soal
Extended ER
• Walaupun konsep ER dasar mampu memodelkan semua basis data, kadang-kadang beberapa
aspek basis data tsb perlu diperluas lagi,
khususnya pada aplikasi yang lebih kompleks. • Hal ini biasa dilakukan dengan memanfaatkan
features dari EER, yaitu: Spesialisasi
Generalisasi
Page 21
Spesialisasi
• Definisi:
proses mendekomposisikan himpunan entitas berdasarkan pengelompokkan tertentu (proses top-down)
Kapan Spesialisasi Dilakukan?
1. Jika kita ingin mendefinisikan
sekumpulan
sub entitas dari suatu himpunan entitas.
2. Jika sub entitas
memiliki spesifik/perbedaan
atribut.
3. Jika sub entitas
memiliki suatu himpunan
relasi spesifik dengan himpunan entitas
lainnya.
Page 23
Spesialisasi (2)
• Suatu himpunan entitas dapat memiliki sub entitas yang berbeda dengan entitas lain dalam himpunan tersebut.
• Misalnya, pada suatu himpunan entitas terdapat sub-himpunan
entitas yang memiliki atribut berbeda dari anggota entitas yang lain. • Contoh: himpunan entitas PERSON dengan atribut nama, alamat,
kota
• PERSON dapat diklasifikasikan lagi menjadi: – Customer
– employee
• Misal, atribut customer adalah customer_id. Sedangkan atribut employee adalah employee_id dan salary.
• Atribut untuk masing-masing klasifikasi adalah atribut PERSON +
atibut masing-masing
Spesialisasi (3)
• Pada diagram ER, spesialisasi dilambangkan dengan segitiga terbalik yang diberi label ISA
(dibaca: “is a”, misal: a customer “is a” person) • Relasi ISA biasa juga disebut relasi
Page 25
Contoh Spesialisasi
• Sebuah himpunan entitas dapat memiliki
beberapa spesialisasi
yang didasarkan pada
jenis pengelompokan yang berbeda.
•
Contoh: pegawai-tetap vs. calon-pegawai dan
staff vs. teler vs. sekretaris
.
• Setiap pegawai akan menjadi
o Anggota dari pegawai-tetap atau calon-pegawai, o Dan juga anggota staff atau teler atau sekretaris
Page 27
Attribute Inheritance
• Atribut dari himpunan higher-level entity akan
diturunkan kepada himpunan lower-level entity.
• Contoh: customer dan employee akan memiliki atribut-atribut person.
• Jadi, customer dan employee secara otomatis
akan memiliki name, street, & city.
• Apabila suatu himpunan lower-level entity
berada dalam lebih dari satu relasi ISA, maka himpunan tersebut akan memiliki multiple
Multiple Inheritance
Page 29
Generalisasi
• Definisi:
proses penyatuan kelompok-kelompok entitas dalam sebuah himpunan entitas
dengan atribut-atribut yang sama (proses bottom-up).
• Contoh: mahasiswa D3 dan mahasiswa S1 -> mahasiswa
• Generalisasi adalah kebalikan dari spesialisasi
Generalisasi (2)
• Proses desain juga dapat dilakukan secara “bottom up”.
Pada proses ini, beberapa entitas (lower level entity)
digabungkan ke dalam satu himpunan entitas (higher
level entity) berdasarkan kesamaan sifat.
• Proses ini disebut “generalisasi”
• Generalisasi digunakan untuk menekankan kesamaan di antara himpunan entitas dan menyembunyikan
perbedaannya.
• Pada diagram ER, tidak ada perbedaan antara generalisasi dan spesialisasi.
Page 31
Constraint Pada Generalisasi
Ada 2 jenis kelompok constraints pada generalisasi:
1. MEMBERSHIP CONSTRAINTS: Constraints yang menentukan apakah suatu entitas dapat termasuk ke dalam lebih dari satu himpunan lower-level entity. 2. COMPLETENESS CONSTRAINTS: Constraints
yang menentukan apakah suatu entitas dalam himpunan higher-level entity harus merupakan
minimal suatu anggota dari himpunan lower-level entity.
Membership Constraints
Pada constraints ini, himpunan lower-level entity dapat berupa:
Disjoint
Constraint ini menyatakan bahwa suatu entitas tidak boleh
termasuk ke dalam lebih dari satu himpunan lower-level entity.
Misal: Entitas EMPLOYEE harus berupa salah satu: TELLER atau OFFICER
Overlapping
Constraint ini menyatakan bahwa suatu entitas boleh termasuk ke dalam lebih dari satu himpunan lower-level entity.
Misal: Entitas PERSON dapat merupakan EMPLOYEE dan juga CUSTOMER
Completeness Constraints
Ada 2:
Total generalization/ specialization
Semua higher-level entity harus merupakan
anggota dari himpunan lower-level entity
Partial generalization/ specialization
Hanya sebagian higher-level entity yang merupakan anggota
Default: partial
Page 35
Contoh TOTAL
Specialisasi dan Generalisasi
PERBEDAAN SPESIALISASI GENERALISASI
Penekanan Perbedaan antar himpunan entitas
Persamaan Himpunan Entitas
Hasil Proses Terlihat secara eksplisit
Tidak terlihat (dengan pertimbangan
penyederhanaan)
Page 37
Latihan
• Staf ditempatkan di kantor cabang. Staf terdiri dari sekretaris, karyawan dan manajer. Kantor cabang dikepalai oleh seorang manajer.
Agregasi
Agregasi mengakomodasikan fenomena dimana relasi yang secara kronologis mensyaratkan telah adanya relasi lain. Dengan kata lain, sebuah
relasi terbentuk tidak hanya dari entitas tapi juga mengandung unsur dari relasi lain.
Page 39
Agregasi
• Salah satu kekurangan dari model ER adalah kita tidak dapat menggambarkan hubungan antar relasi
• Agregasi adalah abstraksi dengan membuat
relasi sebagai entitas yang lebih tinggi
• Agregasi memungkinkan kita mengindikasikan
himpunan relasi berpartisipasi di himpunan relasi yang lain
• Pada diagram ER, kelompok agregasi dimasukkan ke dalam satu kotak
Page 41
Contoh Agregasi
Contoh Agregasi
Himpunan relasi ‘Mengikuti’ menunjukkanentitas mahasiswa yang mengikuti kegiatan praktikum tertentu karena telah mempelajari suatu mata kuliah (yang memang
Page 43
Latihan Agregasi
• Setiap pekerja bekerja pada
proyek-proyek. Mesin-mesin dipergunakan
pekerja-pekerja untuk menyelesaikan
proyek.
Contoh Agregasi
Nim dan kode_kul di relasi ‘Mengikuti’ tidak
berasal dari himpunan entitas Mahasiswa dan
Kuliah, tetapi dari relasi ‘Mempelajari’ yang
secara implisit mempunyai nim+kode_kul.
Karena itulah, ada faktor kronologis yang ingin ditunjukkan dengan adanya Agregasi tersebut, di mana sebuah relasi (Mengikuti Praktikum) hanya akan ada jika telah ada relasi lainnya (Mempelajari Kuliah).
Page 45
Rangkuman Simbol Yang Digunakan
Dalam E-R Notation
Page 47
Rangkuman Simbol Yang
Outline
• Varian Relasi (Biner & Non-biner)
• Himpunan Entitas Lemah (Weak Entity) • ER yang diperluas (Extended ER)
• Merancang ER Model
• Entity Relationship Diagram (tambahan)
Page 49
Merancang diagram ER
Merancang diagram ER seringkali merupakan seni. Tidak ada yang 100% benar atau salah. Semuanya tergantung asumsi yang digunakan oleh pemilik basis data.
Seringkali kita harus membuat keputusan yang tidak mudah:
Menentukan apakah suatu objek merupakan entitas atau atribut
Apakah suatu konsep di dunia nyata merupakan entitas atau relasi
Apakah harus menggunakan relasi n-ary atau dipecah menjadi beberapa relasi biner
Apakah harus menggunakan entitas kuat atau entitas lemah
Apakah perlu melakukan generalisasi/spesialisasi
Page 51
Outline
• Varian Relasi (Biner & Non-biner)
• Himpunan Entitas Lemah (Weak Entity) • ER yang diperluas (Extended ER)
• Merancang ER Model
• Entity Relationship Diagram (tambahan)
Latihan 1
• Buat diagram ER untuk skenario sbb:
Pada suatu sistem pemesanan barang (order), barang-barang dipesan oleh pelanggan. Apabila stok barang di rak berkurang, maka akan diisi kembali dari gudang.
Apabila stok barang di gudang berkurang, maka barang tersebut harus dipesan kembali dari para suplier yang memproduksi barang tersebut.
Page 53
Latihan 2
• Staf perpustakaan, yang memiliki id, nama,
alamat, jabatan, dan nomor telepon, mengerjakan beberapa projek. Untuk setiap staf, kita akan
sering hanya meng-akses nama belakang dari staf tersebut. Setiap projek memiliki kode projek, nama projek, tanggal dimulainya projek tersebut, lama projek, dan tanggal projek tersebut
diperkirakan selesai. Setiap projek hanya dapat dikerjakan oleh satu orang staf perpustakaan, tetapi setiap staf tidak selalu harus mengerjakan sesuatu projek.
Latihan 3
• Buatlah ER untuk perpustakaan secara umum (entitas: buku, cabang perusahaan, peminjam, dan penerbit)
Page 55
Latihan 4
• Suatu perusahaan meminjamkan berbagai
macam tipe kendaraan, yang diidentifikasikan dengan VIN (id kendaraan) dan GVW (berat
kotor kendaraan). Truk memiliki atribut panjang dan kapasitas muatan. Mobil memiliki jumlah tempat duduk (seating capacity). Orang yang diidentifikasikan dengan nama dan nomor SIM dapat meminjam satu atau lebih kendaraan
yang ditawarkan oleh perusahaan tersebut untuk jangka waktu tertentu (per kendaraan)
Latihan 5
• Staf perpustakaan memiliki nama, jabatan, dan nomor telpon kantor. Setiap staf dapat memiliki beberapa projek (tidak harus) yang
diidentifikasikan oleh nama, tanggal mulai, dan tanggal selesai. Setiap projek hanya dapat
dikerjakan oleh satu staf. Setiap staf mempunyai manager (kecuali direktur) yang sendirinya
Page 57
Latihan 6
• Rumah sakit memiliki daftar dokter, pasien, dan sejarah
kesehatan mereka (medical history). Untuk pasien dan dokter, kita menyimpan no KTP, nama, dan alamat. Untuk dokter saja, kita harus menyimpan spesialisasi mereka masing-masing
(‘pembedah', ‘kandungan‘, dll). Dokter dapat juga menjadi pasien di rumah sakit. Ketika pasien datang, kita harus menyimpan
tanggal, dokter yang mengurus pasien tersebut, dan diagnosis (seperti flu, demam, dll.)
• Untuk setiap kali datang (each visit), hanya ada satu dokter yang melakukan diagnosis (tidak perlu dokter yang sama setiap kali). Tidak ada pasien yang datang 2 kali dalam sehari (make 2
visits). Tetapi mungkin ada lebih dari satu diagnosis pada satu kali visit (contoh: putus kaki dan putus tangan). Di setiap kali visit, dokter dapat memberikan nol atau lebih obat dan untuk setiap resep, kita harus menyimpan nama obat dan dosis.
Latihan 7
• Sebuah pabrik memiliki 15 toko mesin. Setiap toko
berhubungan dengan beberapa toko yang lain. Setiap toko dapat memuat sampai 30 mesin, dan setiap mesinnya
membutuhkan keahlian tertentu untuk
mengoperasikannya. Pabrik tersebut mempekerjakan sekitar 500 operator mesin. Setiap operator dibayar dengan gaji pokok dan mempunyai satu atau lebih
keahlian untuk mengoperasikan mesin-mesin tersebut. Setiap keahlian mempunyai kode yang unik dan bonus yang dibayarkan ke operator yang mempunyai keahlian tersebut. Setiap toko mempunyai nama yang unik. Bagian manajemen pabrik tersebut menyimpan luas toko. Setiap mesin memiliki nomor serial. Manajemen juga menyimpan
Page 59
Latihan 8
Rumah sakit Harold menerima pasien rawat menginap. Pasien ini diberikan akomodasi kamar di rumah sakit tersebut. Kamar
tersebut diorgranisasi menjadi beberapa asrama. Asrama
tersebut dikelompokkan ke beberapa kategori. Setiap pasien di rumah sakit tersebut diberi nomor pasien yang unik. Selama tinggal di rumah sakit sebagai pasien rawat inap, pasien
diidentifikasikan oleh kombinasi dari nomor pasien dan nomor sekuen yang terus dinaikkan (1, 2, 3, dst.) untuk setiap admisi. Untuk setiap admisinya, rumah sakit menyimpan detail tentang saudara dekat pasien tersebut dan nama dari asuransi yang dimiliki pasien. Setiap pasien dirawat oleh dokter rumah sakit yang dapat merekomendasikan perawatan standard untuk pasien tersebut. Setiap perawatannya memerlukan biaya.
Asumsi: Setiap pasien dapat diakomodasikan ke lebih dari satu kamar dalam satu admisi dan setiap ruangan memiliki nama yang unik
Latihan 9
• Produksi di suatu pabrik di organisasikan menurut projek dengan manajer dan biaya yang dialokasikan untuk setiap projeknya. Setiap projek dibagi menjadi beberapa
aktivitas. Setiap aktivitas mempunyai supervisor dan
perkiraan berapa lama projek tersebut akan berlangsung. Aktivitas-aktivitas tersebut diberi nomor berurutan dalam setiap projeknya. Pegawai di pabrik tersebut diberi nomor payroll yang unik pada tanggal mereka diterima kerja.
Pegawai-pegawai tersebut dibagi ke dalam projek-projek yang ada. Seorang pegawai dapat diberi beberapa projek. Setiap projek dapat dikerjakan oleh beberapa pegawai. Pegawai-pegawai tersebut diberikan aktivitas-aktivitas tertentu. Data mengenai berapa lama seorang pegawai
Page 61
Rangkuman Perkuliahan
• Varian Relasi (Biner & Non-biner)
• Himpunan Entitas Lemah (Weak Entity) • ER yang diperluas (Extended ER)
• Merancang ER Model
• Entity Relationship Diagram (tambahan) • Latihan soal