ENTITY-RELATIONSHIP MODEL
Entity relationship : cara memodelkan suatu data ditingkat konseptual dalam perancangan basis data.
Tujuan : menyajikan data dan menjadikan data mudah dimengerti,
sehingga mempermudah perancangan dan pengaksesan database.
Berdasarkan tipe konsepnya, data model dibagi menjadi dua kategori yaitu Conceptual (High Level) Data Model dan Physical
(Low Level) Data Model.
Conceptual Data Model merupakan konsep yang berkaitan dengan pandangan pemakai terhadap data, sedangkan Physical Data Model merupakan konsep yang menerangkan detail dari bagaimana data di simpan di dalam komputer.
ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi.
Entity-Relationship Diagram
Merupakan diagram yang menggambarkan
Symbol E-R Diagram
Symbol ______ = Entity Keterangan = Weak Entity = Relationship = Identifying Relationship = Atribut = Atribut Kunci = Atribut Multivalue Symbol Keterangan = Atribut Komposit = Atribut Derivatif E1 R E2 = Total Participation Of E2 In RTahap Pembuatan
Entity Relationship Diagram
1. Mengidentifikasikan dan menetapkan seluruh himpunan entity yang akan terlibat.
2. Menentukan atribut-atribut dari setiap entity.
3. Menentukan atribut primary key dari setiap entity. 4. Menentukan relationship antar entity.
5. Menentukan atribut-atribut dari setiap relationship (jika ada).
6. Menentukan Cardinality Rasio.
ENTITY
Entity adalah obyek yang dapat dibedakan dalam dunia nyata.
Entity sets adalah kumpulan dari entity yang sejenis.
Entity sets dapat berupa :
Obyek secara fisik : Rumah, Kendaraan, Peralatan,
Mahasiswa.
Oyek secara konsep : Pekerjaan, Perusahaan, Rencana, Matakuliah.
Contoh:
o Orang: MAHASISWA, DOSEN, PEMASOK, PENJUAL
o Benda: MOBIL, MESIN, RUANGAN
o Tempat: NEGARA, DESA
o Kejadian: PENJUALAN, REGISTRASI
o Konsep: REKENING, KURSUS
ENTITY
Untuk
membedakan
antara
entitas
sebagai
kumpulan data dan sebuah entitas terdapat istilah
tipe entitas dan instan entitas
Tipe entitas disebut juga himpunan entitas
Instan entitas adalah sebuah kemungkinan data dalam
Atribut
Atribut adalah sifat atau karakteristik yang
melekat dalam sebuah entitas
Contoh:
MAHASISWA = (Nomor_Mhs, Nama_Mhs, Alamat_Mhs, Kota_Mhs) MOBIL = (Kode_Mobil, Nama_Mobil, Cc)
Domain menyatakan kemungkinan nilai
Atribut (Lanjutan..)
Atribut Sederhana versus atribut komposit
Atribut sederhana tidak bisa dipecah menjadi bagian yang
lebih kecil lagi
Atribut komposit adalah atribut yang dapat dipecah menjadi komponen yang lain
Alamat: Alamat_Jalan, Kota, Kode_Pos
Nama: Nama_Depan, Nama_Tengah, Nama_Belakang
Atribut (Lanjutan..)
Atribut nilai tunggal (single-valued) dan nilai berganda (multivalued attribute)
Atribut nilai berganda adalah atribut yang berkemungkinan memiliki nilai lebih dari satu
Atribut (Lanjutan..)
Atribut tersimpan dan atribut turunan (derived attribute)
Atribut tersimpan adalah atribut yang secara eksplisit
tersimpan dalam database
Atribut turunan adalah atribut yang nilainya dapat
dikalkulasi dari nilai atribut tersimpan
Contoh:
Lama_Bekerja dapat dihitung dari Tgl_Mulai_Bekerja
Simbol-Simbol Atribut (oval)
nama_atribut nama_atribut bernilai ganda nama_entity nama_atribut_komposit nama_atribut_derivatif nama_atribut_kunci nama_atribut nama_atribut nama_atributRELATIONSHIP
Relationship adalah hubungan yang terjadi antara satu atau lebih entity.
Relationship sets adalah kumpulan dari relationship yang sejenis.
Contoh :
an employee work_on a company. relationship : work_on.
Simbol : wajik
Derajat dari Relationship
Menjelaskan jumlah entity yang berpartisipasi dalam suatu relationship
Unary Degree (Derajat Satu) : sebuah entity berelasi dengan dirinya.
employee
supervison
Derajat dari Relationship (lanj)
Binary Degree (Derajat Dua) : terdapat dua entity yang saling berhubungan.
Derajat dari Relationship (lanj)
Ternary Degree (Derajat Tiga) : terdapat tiga entity yang saling berhubungan.
employee work_on brunch
job
employee_id
employee_name
title level
Cardinality Ratio
Menjelaskan jumlah keterhubungan satu entity dengan entity yang lainnya.
(1 : 1) : satu entitas pada tipe entitas A berhubungan dengan paling banyak satu entitas pada tipe entitas B dan juga sebaliknya.
Contoh : seorang manager hanya memimpin satu departemen dan begitu sebaliknya.
M1 M2 M3 manager R1 R2 R3 manages D1 D2 D3 departement
Cardinality Ratio (lanj)
(1 : N / N : 1) : suatu entitas di A dihubungkan dengan sejumlah entitas di B. Contoh : banyak karyawan berkerja untuk satu depertement atau satu departement memiliki banyak karyawan yang bekerja untuknya.
E1 E2 E3 E4 E5 E6 employee R1 R2 R3 R4 R5 R6 works_for D1 D2 D3 departement
Cardinality Ratio (lanj)
(M : N) : setiap entitas A dapat berhubungan dengan banyak entitas B dan sebaliknya setiap entitas B juga dapat berhubungan dengan banyak entitas A. Contoh : satu proyek mempunyai banyak karyawan, satu karyawan boleh bekerja di beberapa proyek. E1 E2 E3 E4 employee R1 R2 R3 R4 R5 R6 works_on P1 P2 P3 project
Kardinalitas Hubungan
Selalu hanya satu
Satu atau banyak
Nol atau satu
Kekangan Kardinalitas
Jenis hubungan antartipe entitas seringkali dinyatakan tidak sekedar dalam bentuk berupa One to One, One to Many, Many to One, dan Many to Many, melainkan juga dengan menyertakan kekangan kardinalitas
Kekangan kardinalitas (cardinality constraint) adalah
suatu keadaan yang digunakan untuk menyatakan jumlah instan dalam sebuah entitas yang dapat dikaitkan dengan sebuah instan pada entitas lain
Implementasinya adalah dengan menggunakan kardinalitas hubungan yang dijelaskan pada slide sebelum ini
Kekangan Kardinalitas (Lanj…)
Berkaitan dengan kekangan kardinalitas, terdapat istilah kardinalitas minimum dan kardinalitas maksimum
Kardinalitas minimum adalah jumlah instan tersedikit dalam sebuah entitas yang mungkin dikaitkan dengan setiap instan pada entitas lain
Kardinalitas maksimum adalah jumlah instan terbanyak dalam sebuah entitas yang mungkin dikaitkan dengan setiap instan pada entitas lain
Contoh Penerapan Kekangan
Kardinalitas
Mempunyai
PASIEN KUNJUNGAN (a) Dasar hubungan
(b) Hubungan dengan kekangan kardinalitas Mempunyai PASIEN SEJARAH PASIEN Contoh: Amir Dewi Fahmi Kunjungan 1 Kunjungan 2 Kunjungan 1 Kunjungan 1 Kunjungan 2
Contoh Penerapan Kekangan
Kardinalitas (Lanj…)
Ditugaskan_ke
PEGAWAI PROYEK (a) Dasar hubungan
(b) Hubungan dengan kekangan kardinalitas Ditugaskan_ke PEGAWAI PROYEK Contoh: Amir Dewi Fahmi Proyek 1 Proyek 2 Proyek 3 Proyek 4 Proyek 5 Sueb
Contoh Penerapan Kekangan Kardinalitas
yang Menggunakan Bentuk Lain
Arti Hubungan
Beberapa barang digunakan untuk Produk
Pelanggan tidak mengirim pesanan
BARANG Digunakan_ pada PRODUK PESANAN Mengirim PELANGGAN
Kekangan Kardinalitasnya?
ORANG Menikah_dengan PEGAWAI Membawahi
Jawaban Kekangan
Kardinalitasnya :
ORANG Menikah_dengan PEGAWAI Membawahi
Participation Constraint
Menjelaskan batasan keikut-sertaan dari suatu entity terhadap hubungannya dengan entity yang lainnya.
Total Participation : menyatakan instance dari suatu entity harus berhubungan dengan instance dari entity lainnya.
Partial Participation : menyatakan setiap instance dari suatu entity tidak harus berhubungan dengan instance dari entity lainnya.
Contoh : setiap departemen harus dipimpin oleh seorang manager/karyawan (total participation) dan tidak semua karyawan yang memimpin suatu departemen (partial participation).
Weak Entity (Entitas Lemah)
Weak entity adalah suatu entity yang mana keberadaannya tergantung dari keberadaan entity lain.
Entity yang merupakan induknya disebut Identifying
Owner dan relationshipnya disebut Identifying Relationship.
Weak entity selalu mempunyai total participation constraint terhadap Identifying Owner. Contoh : entity tanggungan keberadaannya bergantung pada karyawan.
Weak Entity (lanj)
karyawan memiliki tanggungan
CONTOH STUDI KASUS SEDERHANA
Untuk
keperluan
penjelasan
konsep
dan
penggunaan ER-Model, digunakan satu contoh
database
“FAKULTAS”
yang
didalamnya
mencatat:
data dosen
data program studi / prodi
CONTOH STUDI KASUS SEDERHANA
Penjelasan dari sebagian data FAKULTAS yang
diperoleh setelah fase “Requirement Collection and
Analysis” sbb:
1. Fakultas terdiri dari beberapa Program Studi
(prodi). Setiap prodi mempunyai satu nama yang
unik,nomer yang unik, dan seorang dosen
bertindak sebagai kepala dari prodi (kaprodi).
Tanggal mulai bekerja dari kaprodi juga dicatat
dalam database (Tgl pengangkatan sebagai
kaprodi). Satu prodi dapat tersebar disejumlah
lokasi.
CONTOH STUDI KASUS SEDERHANA
2. Suatu prodi dapat mengendalikan sejumlah
proyek mahasiswa, setiap proyek mempunyai
satu nomor yang unik, nama yang unik, dan satu
lokasi tertentu.
3. Data dosen yang perlu dicatat berupa : nama,
nomor induk dosen, alamat, honor, jenis kelamin
dan tanggal lahir.
Seorang dosen ditempatkan di satu prodi, tetapi
dapat menangani sejumlah proyek yang tidak
harus dikendalikan oleh prodi dimana dosen
tersebut ditempatkan.
Jumlah jam perminggunya dari dosen yang
menangani suatu proyek perlu dicatat, juga perlu
dicatat supervisor langsung dari setiap dosen.
CONTOH STUDI KASUS SEDERHANA
4. Untuk keperluan tunjangan dosen, maka
perlu dicatat anggota keluarga dari setiap
dosen. Data yang dicatat berupa: nama
anggota
keluarga,
sex,
birthdate
dan
Latihan 1
Gambarkan
satu
ER-Diagram
dari
satu
set
„requirements“ untuk keperluan database suatu
universitas yang digunakan untuk menyimpan
transkrip dari mahasiswa:
1. Universitas mencatat data setiap mahasiswa yang
berupa: nama,nomor pokok, nomor KTP, alamat
tetap, alamat sementara, tgl-lahir, jenis kelamin,
nama jurusan, program pendidikan (Diploma Tiga,
Sarjana, Pasca Sarjana).Sejumlah user dari aplikasi
yang dibuat juga perlu untuk mengacu pada nama
kota, propinsi dan kode pos dari alamat tetap
mahasiswa, dan juga nama orang tua dari setiap
mahasiswa.Nomor KTP dan nomor pokok unik untuk
setiap mahasiswa.
Latihan 1
2.
Setiap jurusan dijelaskan berdasarkan nama,
kode jurusan, kode kantor, nomor telepon.
Kode dan nama jurusan mempunyai nilai-nilai
yang unik.
3. Setiap mata kuliah mempunyai kode, nama,
jumlah sks, dan jurusan penyelenggara, kode
mata kuliah unik untuk setiap mata kuliah yang
ada.
Latihan 1
4. Setiap mata kuliah yang ditawarkan dalam
setiap
semester
diidentifikasikan
sebagai
„section“, yang setiap section mempunyai
nomor/kode dosen, semester, tahun, mata
kuliah, dan nomor section. Nomor section
membedakan
sejumlah
section
yang
mempunyai nama mata kuliah yang sama yang
ditawarkan pada semester/tahun yang sama
(nilainya adalah 1,2,3 .... s/d jumlah section
yang ditawarkan dalam satu semester).
5. Laporan
nilai
prestasi
belajar
(Transkip)
berisikan nama mahasiswa , section, serta nilai
angka dan nilai huruf (0,1,2,3, atau 4).
Latihan 2
Suatu Basis Data akan dibangun untuk menyimpan informasi mengenai team-team dan pertandingan-pertandingan dalam suatu liga olah raga. Adapun informasi yang diinginkan untuk disimpan berupa:
a. Suatu Team mempunyai nama yang unik, dan Negara asal. b. Suatu Team terdiri dari pemain-pemain. Data-data pemain
yang diperlukan adalah nama pemain, No punggung yang unik, umur, posisi/peran pemain dalam pertandingan.
c. Data lokasi pertandingan yang berupa nama lokasi yang unik dan alamat lokasi yang terdiri dari jalan, kota, dan kode pos.
Latihan 2
d. Untuk tiap pertandingan yang perlu
dicatat adalah nama-nama Team yang
bertanding ( team tuan rumah dan team
tamu), nama lokasi, dan hasil / skor
pertandingan.
Buat ER-Diagram dari user requirement di
atas. Buatlah asumsi-asumsi untuk lebih
Transformasi E-R Diagram ke
Basis Data Relational
Tahap-Tahap Transformasi :
1. Entity-Relationship Diagram menjadi basis data.
2. Entity menjadi tabel dan atribut menjadi kolom/field dari tabel.
3. Entitas lemah key dari “owner” (entitas kuat) ke tabel entitas lemah. 4. Setiap tipe entity dibuat suatu tabel yang memuat semua atribut simple,
sedangkan untuk atribut komposit hanya dimuat komponen-komponennya saja. Contoh : street city state zip_code address customer id name
id name street city state zip_code Tabel Customer
Transformasi E-R Diagram ke
Basis Data Relational (lanj)
5. Setiap tabel yang mempunyai atribut multivalue, buatlah tabel baru dimana primary key-nya merupakan gabungan dari primary key dari tabel tersebut dengan atribut multivalue.
proyek no_proyek nama_proyek lokasii no_proyek nama_proyek Tabel Proyek Tabel Lokasi_Proyek no_proyek lokasi
Transformasi E-R Diagram ke
Basis Data Relational (lanj)
6. Setiap unary relationship 1:N, selain membuat tabel baru
berdasarkan entity, buat juga tabel baru berdasarkan relationship-nya dengan atribut kunci tamu (foreign key) berdasarkan atribut kunci dari entity tersebut dan atribut kunci alternatif sebagai primary key-nya. employee employee_id employee_name supervision 1 N employee_id employee_name Tabel Employee Tabel Supervision supervisor_id employee_id
Transformasi E-R Diagram ke
Basis Data Relational (lanj)
7. Untuk CR 1:1 dengan atau tanpa total participation maka akan dibuat tabel baru berdasarkan relationship, dimana kolom-kolomnya terdiri dari alternate key, dan primary key dari masing-masing entity.
nip Nama_dos Tabel Dosen
kode_jur nama_jur Tabel Jurusan
periode kode_jur nip Tabel kaprodi Dosen nip nama_dos Jurusan kode_jur nama_jur mengepalai 1 1 periode
Transformasi E-R Diagram ke
Basis Data Relational (lanj)
8. Untuk CR 1:N dengan atau tanpa total participation maka primary key dari sisi 1 masuk ke sisi N.
nip nama_dos Tabel Dosen
nim nama_mhs nip Tabel Mahasiswa Dosen nip nama_dos mahasiswa nim nama_mhs perwalian 1 N
Transformasi E-R Diagram ke
Basis Data Relational (lanj)
9. Untuk CR M:N dibuat tabel tersendiri berdasarkan
relationshipnya dengan kolom-kolomnya terdiri dari alternate key dan primary key dari masing-masing entity.
nim nama_mhs Tabel Mahasiswa kode_mk nama_mk Tabel Matakuliah mahasiswa nim nama_mhs matakuliah kode_mk nama_mk mengambil N M
semester nim kode_mk Tabel KRS semester
Studi Kasus :
Rental VCD FILM
Spesifikasi Database
Data dari film berupa : judul, jumlah kepingan, jumlah film.
Film yang disewakan dikelompokkan ke dalam kelompok film yang terdiri dari jenis film dengan masing-masing jenis memiliki harga sewa yang berbeda, artinya jenis film menentukan harga sewanya.
Data customer yang menyewa berupa : no identitas, jenis identitas, nama dan alamat.
Setiap customer dapat menyewa lebih dari satu film.
Satu judul film dapat disewa oleh beberapa customer.
lama sewa sesuai dengan jumlah film, terhitung dari tgl menyewa.
Setiap keterlambatan pengembalian akan dikenakan denda per hari dan per film. nilai dari denda sudah ditetapkan (konstan).
Tahap Pembuatan Entity
Relationship Diagram
1. Mengidentifikasikan entity-entity yang ada. entity-entity : KelompokFilm, Film, Customer. 2. Menentukan atribut-atribut dari setiap entity.
3. Menentukan primary key dari setiap entity.
Entity Atribut
Film judul, jml_keping, jml_film KelompokFilm jenis, harga_sewa
Customer no_identitas, jenis_identitas, nama, alamat
Entity Atribut
Film kode_film, judul, jml_keping, jml_film KelompokFilm jenis, harga_sewa
Tahap Pembuatan Entity
Relationship Diagram (lanj)
4. Menentukan relationship antar entity.
5. Menentukan atribut-atribut dari setiap relationship (jika ada).
Entity Relationship Entity
Film Dikelompokkan KelompokFilm
Customer Menyewa Film
Relationship Atribut
dikelompokkan
-Menyewa tgl_sewa, total_film, tgl_kembali, total_harga, denda
Tahap Pembuatan Entity
Relationship Diagram (lanj)
6. Menentukan Cardinality Rasio.
7. Menentukan participation constraint.
Setiap film harus merupakan anggota dari suatu jenis film, sehingga film memiliki total participation terhadap
relationshipnya dengan entity kelompok film.
Setip customer tidak harus selalu menyewa film dan setiap film tidak harus disewa oleh customer. Sehingga entity-entity ini memiliki partial participation relationship antar keduanya.
Entity Relationship Entity Cardinality Rasio
Film dikelompokkan KelompokFilm N : 1