BASIS DATA (BS203) MODEL ENTITY RELATIONSHIP Bagian 2
[email protected] fb: NDoro Edi
Page 1
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 2
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
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” menghubungkan anak dengan ayah dan ibunya
Page 4
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 berhubungan dengan entitas “anak”
Page 5
Diagram ER dengan relasi 3-ary
Page 6
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 E, lalu membuat 3 himpunan relasi Ra, Rb, dan Rc
Page 7
Mengubah relasi non-biner ke relasi biner (2) • 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 – (ei, ci) pada relasi Rc
Page 8
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 • ((Budi, Manajer, BCA Maranatha), BCA Maranatha) pada Rc
Page 9
ATTENTION PLEASE!!! •
Tidak semua Relasi Multi Entitas dapat dirubah menjadi Relasi Biner! Kenapa demikian?
Page 10
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 11
Himpunan Entitas Lemah • Suatu himpunan entitas kadang-kadang tidak memiliki atribut-atribut yang dapat dijadikan primary key. • H „ impunan entitas semacam itu dinamakan “himpunan entitas lemah” • H „ impunan entitas yang memiliki primary key dinamakan “himpunan entitas kuat.
Page 12
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. Page 13
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. • Partisipasi dari W adalah total Page 14
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 Page 15 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 putusputus. • Himpunan Relasi yang menghubungkan himpunan entitas Lemah dan kuat dilambangkan dengan belah ketupat ganda. Page 16
Himpunan Entitas Lemah (3)
Page 17
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 18
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 19
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 Attribute Inheritance Agregasi Page 20
Spesialisasi • Definisi: proses mendekomposisikan himpunan entitas berdasarkan pengelompokkan tertentu (proses top-down)
• Hasil dekomposisi: Sub Entitas
Page 21
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 22
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 • Proses merancang sub entitas ini disebut dengan spesialisasi
Page 23
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 superclasssubclass
Page 24
Contoh Spesialisasi
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 26
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 inheritance. Page 27
Multiple Inheritance (Pewarisan Lebih Dari Satu)
Page 28
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 Page 29
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 30
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. Page 31
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 Default: Overlapping Untuk disjointness, perlu ditambahkan kata “disjoint” pada segitiga Page 32
Page 33
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 Untuk total: gunakan garis ganda Page 34
Contoh TOTAL
Page 35
Specialisasi dan Generalisasi PERBEDAAN
SPESIALISASI
GENERALISASI
Penekanan
Perbedaan antar himpunan entitas
Persamaan Himpunan Entitas
Hasil Proses
Terlihat secara eksplisit
Tidak terlihat (dengan pertimbangan penyederhanaan)
Proses
Top-down
bottom-up
Page 36 36
Latihan • Staf ditempatkan di kantor cabang. Staf terdiri dari sekretaris, karyawan dan manajer. Kantor cabang dikepalai oleh seorang manajer. • Gambarkan ERD nya
Page 37
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 38
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 39
Contoh
Page 40
Contoh Agregasi
Page 41
Contoh Agregasi Himpunan relasi ‘Mengikuti’ menunjukkan entitas mahasiswa yang mengikuti kegiatan praktikum tertentu karena telah mempelajari suatu mata kuliah (yang memang membutuhkan kegiatan praktikum)
Page 42
Latihan Agregasi • Setiap pekerja bekerja pada proyekproyek. Mesin-mesin dipergunakan pekerja-pekerja untuk menyelesaikan proyek. • Gambarkan ERD nya
Page 43
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 44
E-R Diagram Untuk Bank
Page 45
Rangkuman Simbol Yang Digunakan Dalam E-R Notation
Page 46
Rangkuman Simbol Yang Digunakan Dalam E-R Notation
Page 47
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 48
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 Apakah harus menggungkan agregasi Page 49
Diagram ER (tambahan)
Page 50
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 51
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. • Apabila ada, tuliskan asumsi yang dipakai • Untuk setiap entitas yang anda gambar, tambahkan atribut seperlunya.
Page 52
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. Page 53
Latihan 3 • Buatlah ER untuk perpustakaan secara umum (entitas: buku, cabang perusahaan, peminjam, dan penerbit)
Page 54
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) Page 55
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 memiliki projek.
Page 56
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. Page 57
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 tanggal kapan mesin tersebut dibeli dan kondisi masingPage 58 masing mesin.
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 Page 59 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 menyelesaikan sebuah aktivitas disimpan. Page 60
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
Page 61