Upload
nguyenthuy
View
223
Download
0
Embed Size (px)
Citation preview
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
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 4
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 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
berhubungan dengan entitas “anak”
Page 6
Diagram ER dengan relasi 3-ary
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
E, lalu membuat 3 himpunan relasi Ra, Rb, dan Rc
Page 8
• 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
Mengubah relasi non-biner ke relasi biner (2)
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
• ((Budi, Manajer, BCA Maranatha), BCA Maranatha) pada Rc
Page 10
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
Page 12
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.
Page 14
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 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}
Page 16
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)
Page 18
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
Page 20
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 21
Spesialisasi
• Definisi:
proses mendekomposisikan himpunan entitas berdasarkan pengelompokkan tertentu (proses top-down)
• Hasil dekomposisi: Sub Entitas
Page 22
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
• Proses merancang sub entitas ini disebut dengan spesialisasi
Page 24
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 superclass-
subclass
Page 25
Contoh Spesialisasi
Page 26
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
inheritance.
Page 28
Multiple Inheritance
(Pewarisan Lebih Dari Satu)
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
Page 30
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.
Page 32
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 33
Page 34
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 35
Contoh TOTAL
Page 36
Specialisasi dan Generalisasi
36
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 37
Latihan
• Staf ditempatkan di kantor cabang. Staf terdiri
dari sekretaris, karyawan dan manajer. Kantor
cabang dikepalai oleh seorang manajer.
• Gambarkan ERD nya
Page 38
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 40
Contoh
Page 41
Contoh Agregasi
Page 42
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 43
Latihan Agregasi
• Setiap pekerja bekerja pada proyek-
proyek. Mesin-mesin dipergunakan
pekerja-pekerja untuk menyelesaikan
proyek.
• Gambarkan ERD nya
Page 44
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
E-R Diagram Untuk Bank
Page 46
Rangkuman Simbol Yang Digunakan Dalam E-R Notation
Page 47
Rangkuman Simbol Yang Digunakan Dalam E-R Notation
Page 48
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 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
Apakah harus menggungkan agregasi
Page 50
Diagram ER (tambahan)
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 soal
Page 52
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 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.
Page 54
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)
Page 56
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 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.
Page 58
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 masing-
masing mesin.
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
Page 60
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 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