ENTITY RELATIONSHIP MODEL
ENTITY RELATIONSHIP PENGERTIAN Entity relationship Adalah jaringan yang menggunakan susunan data yang disimpan dari sistem secara abstrak. Entity-relationship dari model terdiri dari unsur-unsur entity dan relationship antara entity-entitiy tersebut.
SIMBOL-SIMBOL ER-DIAGRAM Notasi
Arti
Notasi
Arti
• ENTITY
•
ATRIBUT
• WEAK ENTITY
•
ATRIBUT PRIMARY KEY
•
ATRIBUT MULTI VALUE
•
ATRIBUT COMPOSITE
• RELATIONSHIP • IDENTIFYING R ELATIONSHIP • ATRIBUT DERIV ATIF
KOMPONEN ENTITY RELATIONSHIP 1. Entitas yaitu suatu kumpulan object atau sesuatu yang dapat dibedakan atau dapat diidentifikasikan secara unik. Dan kumpulan entitas yang sejenis disebut dengan entity set.
2. Relationship yaitu hubungan yang terjadi antara satu entitas atau lebih. 3. Atribut, kumpulan elemen data yang membentuk suatu entitas.
4. Indicator tipe terbagi 2 yaitu : a. Indicator tipe asosiatif object b. Indicator tipe super tipe
ENTITY SET TERBAGI ATAS : 1. Strong entity set yaitu entity set yang satu atau lebih atribut nya digunakan oleh entity set lain sebagai key. Misal : E adalah sebuah entity set dengan atribute-atribute a1, a2,..,an, maka entity set tersebut direpresentasikan da lam bentuk tabel E yang terdiri dari n kolom, dimana setia p kolom berkaitan dengan atribute-atributenya. 2. Weak Entity set, Entity set yang bergantung terhadap strong entity set. Misal : A adalah weak entity set dari atribute-atribute a1, a2, .., ar dan B adalah strong entity set dengan atribute-atribute b1, b2,..,bs, dimana b1 adalah atribute primary key, maka we ak entity set direpresentasikan berupa table A, dengan atri bute-atribute {b1} u {a1,a2,.., ar}
Contoh Weak Entity NOPEG
NAMA
……..
PEGAWAI
Contoh Strong Entity
MILIK
……..
TANGGUNGAN
Contoh : Strong entity set
NOPEG 200107340 200307569 200107341 200107486
NAMA BILLY FUAD NINING FINTRI
Weak entity set transaction TANGGUNGAN NOPEG 200107340 200307569 200107341 200107486
HAFIDZ RENI RAFFA NAIA
TANGGAL LAHIR
JENIS KELAMIN
22-03-2006 13-05-1999 21-06-2006 25-10-2006
LAKI-LAKI PEREMPUAN LAKI-LAKI PEREMPUAN
JENIS –JENIS ATRIBUT KEY atribut yang digunakan untuk menentukan suatu entity secara unik b. ATRIBUT SIMPLE atribut yang bernilai tunggal c. ATRIBUT MULTI VALUE atribut yang memiliki sekelompok nilai untuk setiap instan entity Pada gambar dibawah ini, yang menjadi atribut key adalah NIP. Tgl Lahir dan Nama adalah atribut simple. Sedangkan Gelar merupakan contoh atribut multivalue. a.
TGL LAHIR
GELAR
PEGAWAI
NIP
NAMA
d. ATRIBUT COMPOSIT Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu contohnya adalah atribut nama pegawai yang terdiri dari nama depan, nama tengah dan nama belakang.
NAMA DEPAN
NAMA TENGAH NAMA PEGAWAI
NAMA BLKNG
d. ATRIBUT DERIVATIF Suatu atribut yg dihasilkan dari atribut yang lain. Sehingga umur yang merupakan hasil kalkulasi antara Tgl Lahir dan tanggal hari ini. Sehingga keberadaan atribut umur bergantung pada keberadaan atribut Tgl Lahir. TGL LAHIR
UMUR
PEGAWAI
DERAJAT RELATIONSHIP menjelaskan jumlah entity yang berpartisipasi dalam suatu relationship 1. UNARY DEGREE PEGAWAI
LAPOR
2. BINARY DEGREE PEGAWAI
KERJA
DEPARTEMEN
KERJA
PROYEK
3. TERNARY DEGREE PEGAWAI
KOTA
MAPPING CARDINALITY Banyaknya entity yang bersesuaian dengan entity yang lain melalui relationship
JENIS-JENIS MAPPING : 1. One to one 2. Many to One atau One to many 3. Many to many
REPRESENTASI DARI ENTITY SET Entity set direpresentasikan dalam bentuk tabel dan nama yang unique. Setiap tabel terdiri dari sejumlah kolom, dimana masing-masing kolom diberi nama ya ng unique pula
• CARDINALITY RATIO CONSTRAINT, Menjelaskan batasan jml keterhubungan satu entity d gn entity lainnya Jenis Cardinality Ratio = 1:1 1:N/ N:1 M:N PEGAWAI 1:1
KENDARAAN
MILIK
P1. P2. P3.
R1. R2. R3.
PEGAWAI 1
MILIK
K1. K2. K3.
KENDARAAN 1
PEGAWAI
1:N/ N:1
P1. P2. P3. P4.
PEGAWAI
DEPARTEMEN
R1. R2. R3. R4.
D1. D2. D3.
KERJA
1 PEGAWAI
M:N
KERJA
DEPARTEMEN 1 PROYEK
KERJA
P1. P2. P3.
R1. R2. R3. R4.
PEGAWAI M
KERJA
P1. P2. P3.
PROYEK N
Cardinality 1:1,1:M,M:N ONE--TO ONE TO--ONE:
Husband
Wife
Customer
ONE--TO ONE TO--MANY:
Order 1
Order 2
CLASS 1
MANY--TO MANY TO--MANY:
STUDENT A
Order 3
CLASS 2
STUDENT B
STUDENT C
ORDER
ORDER: #, DATE, PART #, QUANTITY 1
CAN HAVE M
PART: #, DESCRIPTION, UNIT PRICE, SUPPLIER #
PART M
SUPPLIER: #, NAME, ADDRESS
CAN HAVE 1 SUPPLIER
A
B
E a c h in s ta n c e o f A is r e la te d t o a m in im u m z e r o a n d a m a x im u m o f o n e in s ta n c e o f B
o f
A
B
E a c h in s ta n c e o f B is r e la te d t o a m in im u m o n e a n d a m a x im u m o f o n e in s ta n c e o f A
o f
A
B
E a c h in s ta n c e o f A is r e la te d t o a m in im u m o f o n e a n d a m a x im u m o f m a n y in s ta n c e s o f B
A
B
E a c h in s ta n c e o f B is r e la te d t o a m in im u m o f z e r o a n d a m a x im u m o f m a n y in s t a n c e s o f A
Logical Record Structured (LRS) LRS representasi dari struktur record-record pada tabel-tabel yang terbentuk dari hasil relasi antar himpunan entitas. Menentukan Kardinalitas, Jumlah Tabel dan Foreign Key (FK) One to One (1-1) Supir
kemudi
Taksi
Gambar di atas menunujukan relasi dengan kardinalitas 1-1, karena: 1 supir hanya bisa mengemudikan 1 taksi, dan 1 taksi hanya bisa dikemudikan oleh 1 supir. Relasi 1-1 akan membentuk 2 tabel: Tabel Supir (nosupir, nama, alamat) Tabel Taksi (notaksi, nopol, merk, tipe)
LRS yang terbentuk sbb: nosupir nama alamat
notaksi nopol merk tipe nosupir(FK)
atau notaksi nopol merk tipe
nosupir nama alamat Notaksi(FK)
One to Many (1-M) Dosen
bimbing
Kelas
Gambar di atas menunujukan relasi dengan kardinalitas 1-M, karena: 1 Dosen bisa membimbing banyak Kelas, dan 1 Kelas hanya dibimbing oleh 1 Dosen. Relasi 1-M akan membentuk 2 tabel: Tabel Dosen (nip, nama, alamat) Tabel Kelas (kelas, jurusan, semester, jmlmhs)
LRS yang terbentuk sbb:
nip nama alamat
kelas jurusan semester jmlmhs nip (FK)
Many to Many (M-M) Mahasiswa
ajar
Mtkuliah
Gambar di atas menunujukan relasi dengan kardinalitas M-M, karena: 1 Mahasiswa bisa belajar banyak Mata Kuliah, dan 1 Mata Kuliah bisa dipelajari oleh banyak Mahasiswa. Relasi M-M akan membentuk 3 tabel: Tabel Mahasiswa (nim, nama, alamat) Tabel Mtkuliah (kdmk, nmmk, sks) Tabel Nilai (nim, kdmk, nilai) menggunakan super key/composite key
LRS yang terbentuk sbb: Mahasiswa
nim nama alamat
Mtkuliah Nilai
nim (FK) kdmk (FK) nilai
kdmk nmmk sks
Participation Constraint Menjelaskan apakah keberadaan suatu entity tergantu ng pada hubungannya dengan entity lain. Terdapat dua macam participation constrain yaitu: 1. Total participation constrain yaitu: Keberadaan suatu entity tergantung pada hubungan nya dengan entity lain. Didalam diagram ER digamb arkan dengan dua garis penghubung antar entity dan relationship. 2. Partial participation, yaitu Keberadaan suatu entity tidak tergantung pada hub ungan dengan entity lain. Didalam diagram ER diga mbarkan dengan satu garis penghubung.
Contoh : a. TOTAL PARTICIPATION PEGAWAI
PUNYA
N
BAGIAN 1
b. PARTIAL PARTICIPATION
PEGAWAI N
KERJA
PROYEK 1
INDICATOR TIPE Indicator tipe asosiatif object berfungsi sebagai suatu objek dan suatu relationship. SISWA
MENDAFTA R
KURSUS
Berubah menjadi
SISWA
KURSUS
PENDAFTARA N
Indicator tipe super tipe, terdiri dari suatu object dan satu subkategori atau lebih yang dihubungkan dengan satu relationship yang tidak bernama. PEGAWAI
PEGAWAI HONORER
PEGAWAI TETAP
PEMBUATAN DIAGRAM ER 27
Pilihan Ketika Merancang ERD • Proses pembuatan diagram ER merupakan proses yang iteratif dengan proses refinement yang umum. • Adakalanya suatu konsep awalnya dimodelkan sebagai atrib ut, kemudian dijadikan sebagai relationship, karena atribut ini merupakan referensi ke entity type lainnya. • Kadang-kadang, satu atribut muncul pada beberapa entity t ype dan kita pertimbangkan untuk lebih baik menjadi entity type tersendiri. • Contoh: pada basis data UNIVERSITY, semula entity STUDENT, INSTRUCTOR & COURSE masing-masing memi liki atribut Department. Maka DEPARTMENT dapat dijadika n entity dengan DeptName sebagai atribut dan selanjutnya 28 dihubungkan dengan ketiga entity tersebut. Atribut lain dap at dicari kemudian.
Pilihan Ketika Merancang ERD • Dapat pula diterapkan refinement yang berkebalikan dari ka sus sebelumnya. • Jika DEPARTMENT ada sebagai entity pada awal perancangan namun hanya memiliki 1 attribute, yakni STUDENT, maka DEPARTMENT dapat dipindahkan sebagai attribute untuk entit y STUDENT.
• Refinement pada specialization, generalization & higher deg ree relationship
29
Konvensi Penamaan • Pilih nama (untuk entity types, attributes, relationship typ es) yang menggambarkan maknanya • Gunakan nama tunggal untuk entity types • Gunakan huruf kapital untuk nama entity type dan relatio nship types • Gunakan huruf kapital di awal kata untuk attributes • Gunakan huruf kecil untuk nama role • Nama entity type cenderung menggunakan kata benda • Nama relationship types cenderung mengunakan kata ker 30 ja
Alat Bantu Pemodelan Data • Terdapat beberapa alat bantu untuk pemodelan konseptu al dan pemetaan model ini ke skema relasional. • Contoh: Ms. Visio, ER-Win, DBDesigner, S-Designer (Enter prise Application Suite), ER-Studio . • Merupakan sarana membuat dokumentasi kebutuhan aplikas i • Antar mukanya mudah digunakan
31
Kelemahan Notasi ER
Model ER tidak mendukung abstraksi-abstraksi yang berupa spesialisasi dan generalisasi Solusi? Enhanced ER 32
Latihan – Soal 1 • Mahasiswa meminjam buku. • Tentukan entity dari deskripsi ini.
33
Latihan – Soal 2 • Pada saat mendaftar menjadi anggota perpustakaan Fakul tas, dicatatlah nama, nomor mahasiswa dan alamat mahasi swa. Setelah itu mereka baru bisa meminjam buku di perpustak aan. Buku-buku yang dimiliki perpustakaan banyaksekali jumla hny.Tiap buku memiliki data nomor buku, judul, pengaran g, penerbit, tahun terbit. Satu buku bisa ditulis oleh beberap a pengarang. • Tentukan entity, attribute dan relationship dari deskripsi di atas. 34
Latihan – Soal 3 • Seperti deskripsi soal nomor 2, namun ada beberapa t ambahan penjelasan berikut ini. Seorang mahasiswa b oleh meminjam beberapa buku. Satu buku boleh dipinjam b ebe-rapa mahasiswa. Semua mahasiswa sangat perlu buku sehingga tidak ada yang tidak pernah meminjam ke perpustakaan. Ada buku yang sangat laris dipinjam mahasisa, namun ada pula buku yang tidak pernah dipinjam sama sekali. Satu buku dapat memiliki memili ki 35 beberapa copy, namun untuk copy yang sama memilik i satu nomor buku. Setiap peminjaman akan dicatat tan
Latihan – Soal 4 Seperti soal nomor 3, namun ada beberapa tambahan penjelasan berikut ini. Mahasiswa kadang-kadang terlambat mengembalikan buku , sehingga dikenakan denda. Besarnya denda adalah Rp 500,- per hari keterlambatan. Mahasiswa dianggap terlambat jika mengembalikan buku lebih lama dari 1 minggu.
36
Latihan – Soal 5 Seperti soal nomor 4, namun ada beberapa tam bahan penjelasan berikut ini. Fakultas memiliki 3 jurusan, dan tiap jurusan memiliki perpustakaa n. Mahasiswa boleh meminjam dari perpustakaan manapun di jurusan tersebut. Setiap perpustak aan memiliki banyak buku. Buku yang sama ha nya ada di satu perpustakaan.
37
Latihan – Soal 6 Seperti soal nomor 5, namun ada beberapa tambahan penjelasan berikut ini. Fakultas memiliki 3 jurusan, dan tiap jurusan memiliki perpustakaan. Setiap mahasiswa baru otom atis langsung terdaftar di satu perpustakaan, namun mereka boleh meminjam dari perpustakaan manapun di jurusan tersebut.
38
Jawab: Latihan 1 Entity: MAHASISWA dan BUKU
39
Jawab: Latihan 2 No_Mhs
No_Buku Nama
MAHASISWA
Alamat
Judul
MEMINJAM
BUKU
Pengarang
Penerbit
40
Jawab: Latihan 3 No_Mhs
Jumlah
Nama M MAHASISWA
Alamat
MEMINJAM
Tgl Pinjam
N
No_Buku Judul
BUKU
Pengarang
Penerbit
41
Jawab: Latihan 4 No_Mhs
Denda Nama M
MAHASISWA
Alamat
MEMINJAM
Jumlah
N
Tgl Pinjam
No_Buku Judul
BUKU
Pengarang
Penerbit
Tgl Kembali
42
Jawab: Latihan 5 No_Mhs
Denda Nama M
MAHASISWA
Alamat
MEMINJAM
Jumlah
No_Buku Judul
N
Tgl Pinjam
BUKU Pengarang Penerbit
Tgl Kembali MILIK Jurusan
PERPUSTAKAAN
43
Jawab: Latihan 6 No_Mhs
Denda
Jumlah
Nama M MAHASISWA
MEMINJAM
Judul
N
BUKU Pengarang
Tgl Pinjam
Alamat
No_Buku
Penerbit
N N
Tgl Kembali MILIK Jurusan 1 1
TERDAFTAR_DI
PERPUSTAKAAN
44
Latihan – Soal 7 For each airplane we keep track of its identity, number of seats, and type . Its type is defined by the name, the maximum number of seats, and the company that produces it. Specific airplane types can land at specific airports. For each airport we need to know the name, the city, the state, and the code of it. Each flight has information about the airline, the number and the weekdays it operates. It also has fares, with code number, amount, and restrictions. A flight has several flight legs (a flight leg is for example Aalborg-Copenhagen, and Copenhagen-New York, when you are flying from Aalborg to New York via Copenhagen), from and to an airport, with scheduled departure and arrival time respectively. Each airplane is assigned to a leg instance, which is a particular occurrence of a flight leg on a particular date, while a leg is a non-stop portion of a flight. Each leg instance arrives to and departs from airport at specific arrival and departure times. Finally, for each leg instance we can make reservations of seats, based on the customer name and customer phone number. Design an ER schema that accurately reflects the requirements. 45
Latihan – Soal 8 •
Consider the following set of requirements for a university database that is used to keep track of students' transcripts. (a) The university keeps track of each student's name, student number, social security number, current address and phone, permanent address and phone, birth date, sex, class (Stage 1, Stage 2, ..., Stage 4), major department, minor department (if any), and degree program (B.A., B.Sc., ..., Ph.D.). Some user applications need to refer to the city, state, and zip of the student's permanent address, and to the student's last name. Both social security number and student number have unique values for each student. (b) Each department is described by a name, department code, office number, office phone, and college. Both name and code have unique values for each department. (c) Each course has a course name, description, course number, number of semester hours, level, and offering department. The value of course number is unique for each course. (d) Each section has an instructor, semester, year, course, and section number. The section number distinguishes different sections of the same course that are taught during the same semester/year; its values are 1, 2, 3, ...; up to the number of sections taught during each semester. (e) A grade report has a student, section, letter grade, and numeric grade (0, 1, 2, 3, 4 for F, D, C, B, A, respectively). 46
Referensi • Elmasri & Navathe, Fundamental of Database Systems, 5th Edition, Chapter 3, 2007. • Elmasri & Navathe, Fundamental of Database Systems, 6th Edition, Chapter 7, 2011. • Bahan Ajar mata kuliah Basis Data Gasal 2011/2012, Siti Aminah, Fasilkom UI.
47