IF5031 – Model Entity Relationship Disusun oleh: Wikan Danar Program Studi Teknik Informatika Institut Teknologi Bandung
Himpunan Entitas Basis data dapat dimodelkan sebagai kumpulan entitas hubungan antar entitas Entitas adalah objek yang ada dan dapat dibedakan dengan objek yang lain Orang: karyawan, mahasiswa, pasien Tempat: toko, gudang, negara Objek: mesin, gedung, mobil Even: penjualan, registrasi, peremajaan Konsep: rekening, kuliah, pusat kerja Entitas mempunyai atribut Contoh: orang mempunyai nama dan alamat Himpunan entitas adalah himpunan dari entitas dari tipe yang sama yang mempunyai properti yang sama Contoh: himpunan semua orang, perusahaan, pohon, liburan
Apa seharusnya entitas itu? Objek yang mempunyai banyak instans dalam basis data Objek yang terdiri dari berbagai macam atribut Objek yang berusaha kita modelkan SEHARUSNYA BUKAN: Pengguna dari sistem basis data (contoh: bendahara) Keluaran dari sistem basis data (contoh: laporan)
Himpunan Entitas customer dan loan customer-id customer- customer- customer- loan- amount name street city number
Atribut Entitas diwakili oleh himpunan atribut-atribut, yang merupakan properti deskriptif yang dimiliki oleh semua anggota himpunan entitas Domain (ranah) – himpunan dari nilai yang diperbolehkan untuk setiap atribut Tipe-tipe atribut Atribut sederhana dan komposit Atribut bernilai tunggal dan atribut bernilai banyak Atribut turunan Example: customer = (customer-id, customer-name, customer-street, customer-city) loan = (loan-number, amount)
Atribut Komposit
Himpunan Relationship (Hubungan) Relationship adalah hubungan antara beberapa entitas Contoh: Hayes depositor A-102 customer entity relationship set account entity Himpunan relationship adalah relasi matematika antara 2 entitas atau lebih (kemungkinan tidak berbeda), yang diambil dari himpunan entitas {(e1, e2, … en) | e1 E1, e2 E2, …, en En} di mana (e1, e2, …, en) adalah relationship Contoh: (Hayes, A-102) depositor
Himpunan Relationship borrower
Himpunan Relationship Atribut dapat menjadi properti dari himpunan relationship Contoh, himpunan relationship depositor antara himpunan entitas customer dan account dapat mempunyai atribut access-date
Derajat Himpunan Relationship Derajat himpunan relationship mengacu pada jumlah himpunan entitas yang berpartisipasi dalam suatu himpunan relationship Himpunan relationship yang melibatkan dua himpunan entitas disebut biner (atau berderajat dua). Secara umum, kebanyakan himpunan relationship dalam sistem basis data adalah biner Himpunan relationship dapat melibatkan dua himpunan entitas atau lebih Relationship antara dua buah himpunan entitas jarang, kebanyakan relationship biner
Pemetaan Kardinalitas (1/2) Mengekspresikan jumlah entitas yang mana entitas yang lain dapat diasosiasikan melalui himpunan relationship Berguna dalam pendeskripsian himpunan relationship biner Untuk setiap himpunan relationship biner, pemetaan kardinalitas harus mengikuti salah satu dari tipe berikut One to one One to many Many to one Many to many
Pemetaan Kardinalitas (2/2) One to one One to many Many to one Many to many Note: Some elements in A and B may not be mapped to any elements in the other set
Pemetaan Kardinalitas mempengaruhi perancangan ER Dapat menyebabkan access-date menjadi atribut account, alih-alih atribut dari relationship, jika setiap account hanya punya satu customer Contoh: relationship dari account ke customer adalah many to one, atau customer ke account adalah one to many
Diagram E-R Persegi panjang mewakili himpunan entitas Belah ketupat mewakili himpunan relationship Garis menghubungkan atribut ke himpunan entitas dan himpunan entitas ke himpunan relationship Elips mewakili atribut Elips ganda mewakili atribut bernilai banyak Elips bergaris putus-putus berarti atribut turunan Garis bawah berarti atribut kunci primer
Diagram ER dengan atribut komposit, bernilai banyak dan turunan
Himpunan Relationship dengan atribut
Peranan (Roles) Himpunan entitas dari suatu relationship tidak perlu dibedakan Label “manager” dan “worker” disebut peranan, ia menentukan bagaimana entitas employee berinteraksi melalui himpunan relationship works-for Peranan ditunjukkan dalam diagram ER dengan menamai garis yang menghubungkan antara bujur sangkar dengan persegi panjang Label peran adalah opsional, dan dapat digunakan untuk menjelaskan makna semantik dari relationship
Kendala Kardinalitas (1/2) Kendala kardinalitas diekspresikan dengan menggambar garis berpanah (), yang berarti “one,” atau garis tak berpanah (—), yang berarti “many,” antara himpunan relationship dan himpunan entitas One-to-one relationship: One-to-many relationship: One-to-one relationship: A customer is associated with at most one loan via the relationship borrower A loan is associated with at most one customer via borrower In the one-to-many relationship a loan is associated with at most one customer via borrower, a customer is associated with several (including 0) loans via borrower
Kendala Kardinalitas (2/2) Many-to-one relationship: Many-to-many relationship: In a many-to-one relationship a loan is associated with several (including 0) customers via borrower, a customer is associated with at most one loan via borrower In a many-to-many relationship: A customer is associated with several (possibly 0) loans via borrower A loan is associated with several (possibly 0) customers via borrower
Partisipasi Himpunan Entitas dalam Himpunan Relationship Partisipasi total (ditandai dengan garis ganda): setiap entitas dalam himpunan entitas berpartisipasi dengan minimal satu relationship dalam himpunan relationship Contoh: partisipasi loan dengan borrower adalah total setiap loan harus punya customer yang berhubungan dengannya melalui borrower Partisipasi parsial: beberapa entitas dapat tidak berpartisipasi dengan relationship manapun dalam himpunan relationship Contoh: partisipasi customer dengan borrower adalah parsial
Notasi Alternatif untuk Pembatasan Kardinalitas Pembatasan kardinalitas juga dapat mengekspesikan kendala partisipasi
Kunci (Keys) Super key dari himpunan entitas adalah himpunan dari satu atribut atau lebih, di mana nilainya menentukan setiap entitas secara unik Candidate key dari himpunan entitas adalah super key minimal Customer-id adalah candidate key dari customer account-number adalah candidate key dari account Walaupun beberapa candidate keys mungkin ada, satu di antara candidate keys terpilih untuk menjadi primary key. Candidate keys yang lain disebut alternate keys.
Keys untuk Himpunan Relationship The combination of primary keys of the participating entity sets forms a super key of a relationship set. Kombinasi primary keys dari himppunan entitas yang berpartisipasi membentuk super key dari himpunan relationship (customer-id, account-number) adalah super key dari depositor CATATAN: ini berarti pasangan himpunan entitas dapat mempunyai paling banyak satu relationship dalam himpunan relationship tertentu Harus mempertimbangkan pemetaan kardinalitas dari himpunan relationship ketika menentukan candidate keys Perlu mempertimbangkan semantik dari himpunan relationship dalam memilih primary key dalam kasus lebih dari satu candidate key
Diagram ER dengan Ternary Relationship
Kendala Kardinalitas pada Ternary Relationship Paling banyak satu panah dibolehkan keluar dari ternary relationship (atau derajat yang lebih tinggi) untuk mengindikasikan kendala kardinalitas Contoh: panah dari works-on ke job menandakan setiap pekerja bekerja pada paling banyak satu pekerjaan (job) pada cabang manapun Jika terdapat lebih dari satu panah, ada dua cara untuk mendefinisikan artinya Contoh: ternary relationship R antara A, B dan C dengan panah ke B dan C dapat berarti setiap entitas A diasosiasikan dengan entitas unik dari B dan C atau setiap pasangan entitas dari (A, B) diasosiasikan dengan entitas C yang unik, dan setiap pasangan (A, C) diasosiasikan dengan B yang unik Setiap alternatif telah digunakan dalam formalisme yang berbeda Untuk menghindari kebingungan, lebih dari satu panah dinyatakan tidak sah
Relationships Biner vs. Non-Biner Beberapa relationships yang tampil sebagai non-biner mungkin lebih baik direpresentasikan dalam bentuk relationship biner Contoh: relationship terner orangtua, menghubungkan anak pada ayah dan ibunya, lebih baik digantikan dengan dua relationship biner, ayah dan ibu Dengan menggunakan dua relationship biner memungkinkan informasi parsial (contoh: hanya ibu yang dikenali) Tetapi ada beberapa relationship yang secara alamiah non-biner Contoh: works-on
Mengkonversi Relationship Nonbiner ke bentuk biner Secara umum, relationship nonbiner apapun dapat direpresentasikan menggunakan relationship biner dengan menciptakan himpunan entitas artifisial Replace R between entity sets A, B and C by an entity set E, and three relationship sets: Gantikan R antara himpunan entitas A, B, dan C dengan himpunan entitas E, dan tiga himpunan relationship: 1. RA, menghubungkan E dan A 2.RB, menghubungkan E dan B 3. RC, menghubungkan E dan C Buatlah atribut identifikasi khusus untuk E Tambahkan atribut dari R ke E Untuk setiap relationship (ai , bi , ci) pada R, buat 1. entitas baru ei pada himp. entitas E 2. tambahkan (ei , ai ) ke RA 3. tambahkan (ei , bi ) ke RB 4. tambahkan (ei , ci ) ke RC
Mengkonversi Relationship Nonbiner Perlu juga mentranslasikan kendala Menerjemahkan semua kendala mungkin tidak bisa Mungkin ada instans di dalam skema yang sudah diterjemahkan yang tidak berhubungan dengan instans apapun di R Kita dapat menghindari membuat atribut yang teridentifikasi dengan membuat E himpunan entitas lemah yang diidentifikasikan dengan tiga himpunan relationship
Isu-isu Perancangan Penggunaan himpunan entitas vs. atribut Pilihan biasanya antara struktur perusahaan yang dimodelkan, dan pada semantik yang berhubungan dengan atribut yang ditanyaka Penggunaan himpunan entitas vs. himpunan relationship Panduan yang mungkin adalah merancang himpunan relationship untuk mendeskripsikan aksi-aksi yang terjadi antara entitas Himpunan relationship biner vs. n-er Walaupun mungkin untuk mengganti himpunan relationship nonbiner (n-er, untuk n > 2) dengan sejumlah himpunan relationship biner, himpunan relationship n-er menunjukkan secara lebih jelas bahwa beberapa entitas berpartisipasi langsung pada satu relationship Penempatan atribut relationship
Case Study Sebuah perusahaan asuransi mengelola sejumlah pelanggan yang memiliki informasi No SIM, Nama, dan Alamat. Setiap pelanggan dapat memiliki sejumlah kendaraan, dan untuk setiap kendaraan perlu disimpan informasi No Kendaraan, Model, dan Tahun. Setiap kendaraan dapat terlibat dalam sejumlah kecelakaan yang dilaporkan. Untuk setiap kecelakaan, perlu disimpan informasi No Laporan, Lokasi, dan Tanggal, serta Nilai Kerusakan untuk setiap kendaraan yang terlibat di dalam kecelakaan tersebut.
Case Study (Cont.) Catatan Pelanggan: Catatan Kendaraan: NO SIM NAMA ALAMAT Catatan Kendaraan: NO KENDARAAN MODEL TAHUN PEMILIK Catatan Kecelakaan: NO LAPORAN LOKASI TANGGAL KENDARAAN TERLIBAT NO KENDARAAN SUPIR KERUSAKAN