Konseptual Data Model (ER Model)
Presented at the 4th Meeting Database, ST3 Telkom Purwokerto, 30 September 2015
Tujuan Tujuan: 1. Memahami konsep dasar ER Model. 2. Mengenal notasi ER Diagram. 3. Memahami Entity, Attribute, Entity Set dan Key (Primary Key dan Foreign Key) 4. Memahami relasi dan himpunan relasi. 5. Memahami rasio kardinalitas (1-1,1-N,M-N) 6. Memahami Participation Constraint (total & partial).
1. ER Data Model
2. Jenis atribut dan Notasi ER Diagram 3. Relasi dan Rasio Kardinalitas 4. Participation Constraint Dependencies
Fase dalam Desain Database:
Miniworld
REQUIREMENTS COLLECTION & ANALYSIS
Functional Requirements
Data Requirements
FUNCTIONAL ANALYSIS
CONCEPTUAL DESIGN
High-level Transaction Specification
Conceptual Schema (In a high- level data model)
DBMS- independent LOGICAL DESIGN (DATA MODEL MAPPING)
DBMS-specific APPLICATION PROGRAM DESIGN
Logical (Conceptual) Schema ( In the data model of a specific DBMS)
PHYSICAL DESIGN (DATA MODEL MAPPING) TRANSACTION IMPLEMENTATION
Application Programs
Internal Schema
ER Data Model Pemodelan sistem database dapat dilakukan melalui pendekatan perancangan secara konsepsual yaitu Entity Relationship Diagram (ERD atau ER Diagram). 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. ER Diagram menggambarkan tipe objek mengenai data itu di manajemen, serta relasi antara objek tersebut. ER Diagram digunakan oleh seorang System Analyst dalam merancang database. ER Model dibuat berdasarkan persepsi atau pengamatan dunia nyata yang terdiri atas entitas dan relasi antar entitas-entitas tersebut. Sebuah database dapat dimodelkan sebagai: ◦ ◦
Kumpulan Entity/Entitas, Relationship/Relasi diantara entitas.
ER Data Model Entitas adalah suatu kumpulan object atau sesuatu yang dapat dibedakan atau dapat diidentifikasikan secara unik. Dan kumpulan entitas yang sejenis disebut dengan entity set. Relationship yaitu hubungan yang terjadi antara satu entitas atau lebih. Atribut, kumpulan elemen data yang membentuk suatu entitas. Entitas ada yang bersifat konkrit, seperti: orang (pegawai, mahasiswa, dosen, dll), buku, perusahaan; dan ada yang bersifat abstrak, seperti: kejadian, mata kuliah, pekerjaan, status dan sebagainya. Setiap entitas memiliki atribut sebagai keterangan dari entitas, misal. entitas mahasiswa, yang memiliki atribut: nrp, nama dan alamat.
ENTITY SET TERBAGI ATAS : 1. Strong entity set yaitu entity set yang satu atau lebih atributnya digunakan oleh entity set lain sebagai key. Digambarkan dengan empat persegi panjang. Misal : E adalah sebuah entity set dengan atribute-atribute a1, a2,..,an, maka entity set tersebut direpresentasikan dalam bentuk tabel E yang terdiri dari n kolom, dimana setiap kolom berkaitan dengan atribute-atributenya. 2. Weak Entity set, Entity set yang bergantung terhadap strong entity set. Digambarkan dengan empat persegi panjang bertumpuk. 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 weak entity set direpresentasikan berupa table A, dengan atribute-atribute {b1} u {a1,a2,.., ar}
ER Data Model Setiap atribut pada entitas memiliki kunci atribut (key atribut) yang bersifat unik. Beberapa atribut juga dapat ditetapkan sebagai calon kunci (candidate key). Misal. – Entitas Mahasiswa dengan atribut NRP sebagai key atribut – Entitas Dosen dengan NIP sebagai key atribut, dan sebagainya.
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 NOPEG
200107340 200307569 200107341 200107486
TANGGUNGAN TANGGAL LAHIR
JENIS KELAMIN
HAFIDZ RENI RAFFA NAIA
LAKI-LAKI PEREMPUAN LAKI-LAKI PEREMPUAN
22-03-2006 13-05-1999 21-06-2006 25-10-2006
1. ER Data Model
2. Jenis atribut dan Notasi ER Diagram 3. Relasi dan Rasio Kardinalitas 4. Participation Constraint Dependencies
Jenis Atribut dan Notasi ER Diagram Ada beberapa notasi yang digunakan untuk membuat ER Diagram. Misal. notasi Chen, Martin, El Masri dan Korth, akan tetapi pada umumnya adalah sama. Perbedaannya adalah pada pemilihan simbolsimbol yang digunakan.
Pada materi ini, digunakan notasi El Masri karena lebih umum banyak digunakan dan mudah dibaca dan dimengerti.
ER Data Model
ER Data Model • Entitas Lemah (Weak Entity) adalah entitas yang keberadaannya sangat bergantung dengan entitas lain. - Tidak memiliki Key Attribute sendiri. - Entitas tempat bergantung disebut Identifying Owner/Owner. - Entitas lemah tidak memiliki identifier-nya sendiri. - Atribut entitas lemah berperan sebagai Partial Identifier (identifier yang berfungsi secara sebagian). Contoh: NIP
Nama
Karyawan
Nama_Pendamping
Memiliki
Pendamping
Tgl_Lahir
JENIS –JENIS ATRIBUT KEY atribut yang digunakan untuk menentukan suatu entity secara unik b. ATRIBUT SIMPLE atribut yang bernilai tunggal. Merupakan atribut yang tidak dapat dibagi-bagi lagi menjadi atribut yang lebih mendasar. c. ATRIBUT MULTI VALUE atribut yang memiliki sekelompok nilai untuk setiap instan entity. Merupakan atribut yang terdiri dari beberapa atribut yang lebih mendasar/lebih kecil lagi. Contoh: - Atribut ALAMAT, terdiri atas atribut JALAN, KOTA, KODE_POS. - Atribut NAME, terdiri atas atribut FNAME,MNAME dan LNAME pada suatu entitas (EMPLOYEE). a.
JENIS –JENIS ATRIBUT Contoh: - Atribut ALAMAT, terdiri atas atribut JALAN, KOTA, KODE_POS. - Atribut NAME, terdiri atas atribut FNAME,MNAME dan LNAME pada suatu entitas (EMPLOYEE).
Pada gambar dibawah ini, yang menjadi atribut key adalah NIP. Tgl Lahir dan Nama adalah atribut simple. Sedangkan Gelar merupakan contoh atribut multivalue. TGL LAHIR
NIP
GELAR
PEGAWAI
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 BLKNG
NAMA
PEGAWAI
e. 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
ER Data Model • Derived Attribute: adalah atribut yang nilainya dapat diisi atau diturunkan dari perhitungan atau algoritma tertentu. Contoh: - Atribut UMUR, dapat dihitung dari atribut TGL_LAHIR - Atribut LAMA_KULIAH, dapat dihitung dari NRP yang merupakan kombinasi antara digit tahun dan digit yang lain (2696 100…). - Atribut INDEX_PRESTASI, dapat dihitung dari NILAI yang diperoleh MAHASISWA. Nama
NRP
Nama_MK
NO_MK
NRP
Nama
Alamat
Mahasiswa
Mahasiswa
Mata Kuliah Lama_Kuliah
Hobby
No_Telp
Prasyarat
Multi-Valued Attribute
Derived Attribute
1. ER Data Model
2. Jenis atribut dan Notasi ER Diagram 3. Relasi dan Rasio Kardinalitas 4. Participation Constraint Dependencies
Cardinality Ratio Constraint
Menjelaskan batasan jumlah keterhubungan satu entity dengan entity lainnya. Jenis Cardinality Ratio • 1 : 1 (One-To-One) Sebuah entity A diasosiasikan pada sebuah entity B, dan sebuah entity B diasosiasikan dengan paling banyak sebuah entity A. a1
b1
a2
b2
a3
b3
a4
b4
A
B
PEGAWAI
MEMILIKI
KENDARAAN
• 1 : N (One-To-Many) Sebuah entity A diasosiasikan dengan sejumlah entity B, tetapi entity B dapat diasosiasikan paling banyak satu entity A. a1
b1 b2
a2
b3 b4
a3
b5
A
B
• N : 1 (Many-To-One) • Suatu entity A dapat diasosiasikan dengan paling banyak sebuah entity B, tetapi entity B dapat diasosiasikan dengan sejumlah entity di A. a1
b1
a2 a3
b2
a4 a5
b3
A
B
• M : N (Many-To-Many) • Suatu entity A dapat diasosiasikan dengan sejumlah entity B dan entity B dapat diasosiasikan dengan sejumlah entity di A. a1
b1
a2
b2
a3
b3
a4
b4
A
B
Relasi dan Rasio Kardinalitas • Relasi adalah hubungan antar entitas. • Relasi dapat memiliki atribut, dimana terjadi adanya transaksi yang menghasilkan suatu nilai tertentu. Nilai No_MK
Nama
NRP
Mahasiswa
Mengambil
Hobby
Nama_MK
Mata_Kuliah
SKS
Prasyarat
Penjelasan: • Bentuk ER diatas antara Mahasiswa Mengambil Mata_Kuliah, tentunya ada Nilai yang dihasilkan.
• Dimana atribut nilai ditempatkan?
Relasi dan Rasio Kardinalitas Nilai No_MK
Nama
NRP
Mahasiswa
Hobby
Mengambil
Nama_MK
Mata_Kuliah
Prasyarat
SKS
Penjelasan: • Jika atribut Nilai ditempatkan pada entitas Mahasiswa (dimana Nilai merupakan salah satu atribut dari entitas Mahasiswa), maka semua mata kuliah yang diambil oleh seorang mahasiswa menghasilkan nilai yang sama (tidak realistis). • Jika atribut Nilai ditempatkan pada entitas Mata_Kuliah (dimana Nilai merupakan salah satu atribut dari entitas Mata_Kuliah), maka semua mahasiswa yang mengambil mata kuliah tertentu akan memiliki nilai yang sama (tidak realistis). • Attribut Nilai harus ditempatkan pada relasi Mengambil, yang berarti seorang mahasiswa tertentu yang mengambil mata kuliah tertentu, akan mendapatkan nilai tertentu pula.
Relasi dan Rasio Kardinalitas 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
Relasi dan Rasio Kardinalitas Unary Relationship (Relasi Berderajad 1) • adalah relasi dimana entitas yang terlibat hanya 1. • Sering disebut relasi rekursif (recursive relationship). Contoh:
1
Karyawan 1
1 Menikah
Karyawan N
N Memimpin
Karyawan N
Berteman_ Dengan
Relasi dan Rasio Kardinalitas Binary Relationship (Relasi Berderajad 2) • Atau relasi Biner adalah relasi yang melibatkan 2 entitas. Contoh: Pria
1
Fakultas
Ruang_Kuliah
1
Menikah
1
M
Mengatur
Menempati
N
N
Wanita
Jurusan
Mahasiswa
Relasi dan Rasio Kardinalitas Ternary Relationship (Relasi Berderajad 3) • adalah relasi tunggal yang menghubungkan 3 entitas yang berbeda. Contoh:
Harga_Per-Unit
Supplier
M
Cara_Pengiriman
Menyediakan
N
Komponen
N
Gudang
1. ER Data Model
2. Jenis atribut dan Notasi ER Diagram 3. Relasi dan Rasio Kardinalitas 4. Participation Constraint Dependencies
Participation Constraint Dependencies Participation Constraint Dependency • Menunjukkan apakah keberadaan suatu entitas bergantung penuh / tidak dengan entitas relasinya. • Batasan (constraint) adalah jumlah minimum relasi dimana tiap entitas dapat ikut berpatisipasi. • Ada 2 jenis Participation Constraint: 1. Partisipasi Total ( ) adalah bentuk partisipasi yang menunjukkan ketergantungan penuh suatu entitas (semua dan harus). 2. Partisipasi Parsial ( ) adalah bentuk partisipasi yang menujukkan ketergantuan tidak penuh suatu entitas (beberapa, tidak harus semua)
Participation Constraint Dependencies Rasio Kardinalitas 1 : 1 : One-to-One PEGAWAI
p1 p2 p3 p4
MANAGE
r1 r2 r3
Participation Constraint DEPARTEMEN
d1 d2 d3
1
PEGAWAI
1
DEPARTEMEN
MANAGE
N : 1 : Many-to-One PEGAWAI
p1 p2 p3 p4
BEKERJA_PADA
r1 r2 r3 r4
DEPARTEMEN
d1 d2 d3
PEGAWAI
N
BEKERJA_ PADA
1
DEPARTEMEN
M : N : Many-to-Many PEGAWAI
p1 p2 p3 p4
BEKERJA_DI
r1 r2 r3 r4
PROJECT
d1 d2 d3
PEGAWAI
M
BEKERJA_ DI
N
PROJECT
ERD SI RAWAT INAP
nm_pelayanan
username *
password
Operator
biaya
kd_pelayanan *
ket
1
~
Memasukkan
biaya_pelayanan
no_register **
1
tgl_keluar
kode * lama_inap tot_biaya
pasien_ keluar
~
Mencatat
Membayar
~
Mendapatkan
ket
~ no_register *
~
diagnosa
pasien_masuk
tgl_masuk
nama
1 kode *
penjamin tgl_lahir
Rincian_ Biaya
nama_ortu
umur
pekerjaan
sex kd_pelayanan **
biaya layanan
no_telp
status
kota alamat
ERD SI PENJUALAN HANDPON tgl_pembelian
kode_pembelian *
nama_stok
kode_stok**
kode_stok *
jumlah harga
jumlah
pembelian
membeli
stok_barang
1
1
keterangan 1 tot_hrg_beli
total_jumlah
tot_hrg_jual
nama_pembeli menentukan
keterangan
tgl_penjualan kode_barang *
kode_reseller **
kode_penjualan * M
kode_stok **
barang
nama_barang M
jual
M
kode_reseller *
harga_jual
nama_reseller
M
harga_beli
reseller
kategori
alamat
M
telpon
harga_reseller kode_pembatalan** deposit
kode_penjualan**
kode_penambahan*
membatalkan menambah_ deposit
kode_barang**
tgl_penambahan
no_telpon
kode_reseller**
1 jumlah
jumlah
pembatalan 1
rekening
kode_pembatalan *
saldo
Tgl_pembatalan kode_reseller *
keterangan kredit
tanggal debet
ERD SI AKADEMIK Tpt_lahir
Nama
Kd_jurusan*
Alamat Telepon
NPM*
I
I
Jurusan
Kota
Memilih
Mahasiswa
Tgl_lahir
Angkatan Nama_jurusan
I Kd_jur**
Tgl_lahir
M
Mempunyai
I Kode_mk**
Npm**
Kd_krs*
Npm**
Nilai_huruf
Nilai_angka
I
Th_angkatan
Ips
KRS
Nilai Semester
Dosen_wali
Th_akademik
Ipk
Semester
Sks_sdh_dtp
M Menperoleh Kode_ruang
Kd_mk*
Nama_ruang
Nama_mk
I I
Ruang
Sks
Menentukan
M
Mata Kuliah No_ruang**
M Kapasitas
Semester
No_dosen**
Mengajar
I Alamat
No_dosen
Dosen Nama
Kota
Telepon
ERD SI PUSKESMAS
Tgl_berkunjung
No_jamkesmas
Nama_pasien
No_index*
Umur
Jenis_kelamin Nama_pasien
Umur
Alamat
Alamat
Nama_KK
Tgl_berkunjung
~
Pilihan_klinik
No_askes No_index*
Jenis_kelamin
Jamkesmas
Nama_KK Pilihan_klinik
Keperluan **
Keperluan **
Askes
Tgl_berkunjung
~
Menginput data pasien
Nama_pasien
Keterangan
Jenis_kelamin Umur
No_index*
Alamat
~
Umum
Pilihan_klinik Keperluan **
1
Biaya Administrasi
Username
User
Biaya Keperluan Total
Password
1
Bayar Jumlah Ket Bayar
Biaya_keperluan Keperluan**
Biaya_administrasi
Update data
~
Biaya klinik umum
~ Biaya klinik sanitasi
~ Biaya klinik gigi
Keperluan** ~
Keperluan**
Biaya_administrasi Biaya_keperluan Keperluan**
Biaya klinik KIA
Biaya_keperluan Biaya_administrasi
Biaya_administrasi Biaya_keperluan
QUESTIONS..?
Latihan A Buat rancangan ER Diagram untuk sistem database Perpustakaan Kampus dengan deskripsi sebagai berikut: 1. Sistem database perpustakaan kampus yang melibatkan anggota perpustakaan, koleksi buku, dan pegawai perpustakaan. 2. Dalam sistem, digambarkan anggota dapat meminjam buku, sedang pegawai melayani anggota dan menajemen buku-buku perpustakaan. 3. Seorang anggota dapat meminjam buku lebih dari 1, begiu juga sebaliknya. 4. Seorang pegawai melayani semua anggota perpustakaan, tapi tidak sebaliknya. 5. Dan seorang pegawai juga harus memanajemen semua koleksi buku perpustakaan. 6. Setiap anggota yang datang ke perpustakaan belum tentu datang untuk meminjam buku (mungkin karena hal lain: pingin baca, buku tidak ada/masih dipinjam, dll), begitu juga sebaliknya. 7. Seorang pegawai perpustakaan, harus melayani anggota (spt: resigtrasi, pelayanan, dll), begitu juga sebaliknya. 8. Dan pegawai juga harus memanajemen koleksi buku perpustakaan, begitu juga sebaliknya.
Latihan A 9. Pada anggota, yang harus dicatat yaitu id anggota, nama, status (dosen, mahasiswa), id status (NIP, NIM), alamat, no telepon. 10. Pada buku yang harus dicatat adalah id buku, judul, pengarang, penerbit 11. Pada pegawai, yang harus dicatat adalah id pegawai, nama, alamat, no telepon. 12. Setiap terjadi peminjaman buku, harus dicatat tanggal meminjam, tanggal kembali dan jumlah buku yang dipinjam. 13. Setiap pegawai memanajemen buku, tercatat tanggal buku saat pertama kali di-entry. 14. Dan pegawai juga harus mencatat tanggal registrasi anggota perpustakaan saat melayani anggota / pengunjung (calon anggota). Soal: Buat rancangan ER Diagram dari deskripsi diatas, sertakan pula relasi kardinalitas beserta Key
Latihan B Sebuah perusahaan jasa sewa mobil “CV. Sewo Car”, memiliki spesifikasi database sebagai berikut: • Sebuah rental mobil yang disewakan kepada pelanggan. • Tiap pelanggan dapat menyewa labih dari satu mobil dalam sekali transaksi, akan tetapi tidak sebaliknya dan sewaktu-waktu mobil juga tidak dapat disewakan karena kemungkinan keterbatasan kendaraan. • Setiap kali transaksi, terjadi sebuah perjanjian kontrak antara kedua belah pihak dengan adanya catatan kode kontrak, batas tanggal sewa, jumlah mobil yang disewa, dan harga total. • Pada pelanggan yang harus dicatat adalah nomor pelanggan, nama, alamat, no telepon (rumah, HP, kantor, dll), no KTP. • Pada mobil yang harus dicatat adalah Id mobil, no plat mobil, tahun pembuatan, merk (Toyota, Honda, Daihatsu, Suzuki, Nissan, dll), jenis (Kijang, Innova, Altis, Vios, Xenia, Katana, dll), tipe (LX, LGX, V-VTI, dll), jumlah penumpang, jumlah armada, bahan bakar dan harga sewa. Soal: Buat rancangan ER Diagram dari deskripsi diatas, sertakan pula relasi kardinalitas beserta batasan partisipasi total/parsialnya.