Basis Data 1

advertisement
ENTITY-RELATIONSHIP MODEL
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
hubungan (relationship) antar entitas (entity).
Symbol E-R Diagram
Symbol
Keterangan
Symbol
Keterangan
= Entity
= Atribut Komposit
= Weak Entity
= Relationship
= Identifying Relationship
= Atribut Derivatif
E1
= Atribut
E1
______
= Atribut Kunci
= Atribut Multivalue
R
1
R
E2
N
E2
= Total Participation Of E2 In R
= Cardinality Ratio 1:N For E1:E2 In R
Tahap Pembuatan
Entity Relationship Diagram
1.
2.
3.
4.
5.
6.
7.
Mengidentifikasikan
dan
menetapkan
seluruh
himpunan entity yang akan terlibat.
Menentukan atribut-atribut dari setiap entity.
Menentukan atribut primary key dari setiap entity.
Menentukan relationship antar entity.
Menentukan atribut-atribut dari setiap relationship
(jika ada).
Menentukan Cardinality Rasio.
Menentukan Participation Constraint.
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
o
o
o
o
Orang: MAHASISWA, DOSEN, PEMASOK, PENJUAL
Benda: MOBIL, MESIN, RUANGAN
Tempat: NEGARA, DESA
Kejadian: PENJUALAN, REGISTRASI
Konsep: REKENING, KURSUS
 Simbol : persegi panjang
nama_entity
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
sebuah tipe entitas
Tipe Entity dan Instan Entity
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
untuk sebuah atribut
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
Contoh Atribut komposit
Atribut (Lanjutan..)
 Atribut nilai tunggal (single-valued) dan nilai berganda
(multivalued attribute)
 Atribut
nilai berganda adalah atribut yang
berkemungkinan memiliki nilai lebih dari satu
 Contoh: Nomor_Telepon, Ketrampilan_Pemrograman
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
 Usia bisa dihitung dari Tgl_lahir
Simbol-Simbol Atribut (oval)
nama_atribut
nama_atribut
nama_atribut_kunci
nama_atribut
nama_atribut_komposit
nama_atribut
bernilai ganda
nama_atribut
nama_atribut_derivatif
nama_entity
RELATIONSHIP
 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
employee
work_on
company
Derajat dari Relationship
 Menjelaskan jumlah entity yang berpartisipasi dalam
suatu relationship
 Unary Degree (Derajat Satu) : sebuah entity berelasi
dengan dirinya.
employee
supervisor
supervise
supervison
Derajat dari Relationship (lanj)
 Binary Degree (Derajat Dua) : terdapat dua entity yang
saling berhubungan.
employee
work_on
company
Derajat dari Relationship (lanj)
 Ternary Degree (Derajat Tiga) : terdapat tiga entity yang
saling berhubungan.
title
employee_name
level
job
employee_id
brunch_name
employee
work_on
brunch
Brunch_city
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.
manager
manages
departement
M1
M2
M3
R1
R2
R3
D1
D2
D3
manager
1
manages
1
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.
employee
works_for
departement
E1
E2
E3
E4
E5
E6
R1
R2
R3
R4
R5
R6
D1
D2
D3
employee
N
works_for
1
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.
employee
works_on
project
E1
E2
E3
E4
R1
R2
R3
R4
R5
R6
P1
P2
P3
employee
M
works_on
N
project
Kardinalitas Hubungan
Selalu hanya satu
Satu atau banyak
Nol atau satu
Nol, satu, atau banyak
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
PASIEN
Mempunyai
KUNJUNGAN
PASIEN
Mempunyai
SEJARAH
PASIEN
Contoh:
Amir
Dewi
Fahmi
Kunjungan 1
Kunjungan 2
Kunjungan 1
Kunjungan 1
Kunjungan 2
(a) Dasar hubungan
(b) Hubungan dengan
kekangan kardinalitas
Contoh Penerapan Kekangan
Kardinalitas (Lanj…)
PEGAWAI
Ditugaskan_ke
PEGAWAI
Ditugaskan_ke
PROYEK
(a) Dasar hubungan
PROYEK
(b) Hubungan dengan
kekangan kardinalitas
Contoh:
Amir
Dewi
Fahmi
Sueb
Proyek 1
Proyek 2
Proyek 3
Proyek 4
Proyek 5
Contoh Penerapan Kekangan Kardinalitas
yang Menggunakan Bentuk Lain
Arti Hubungan
 Beberapa barang digunakan untuk Produk
BARANG
Digunakan_
pada
PRODUK
 Pelanggan tidak mengirim pesanan
PELANGGAN
Mengirim
PESANAN
Kekangan Kardinalitasnya?
ORANG
Menikah_dengan
SUKU_CADANG
PEGAWAI
Tersusun_atas
Membawahi
Jawaban Kekangan
Kardinalitasnya :
ORANG
Menikah_dengan
SUKU_CADANG
PEGAWAI
Tersusun_atas
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).
employee
1
manages
1
departement
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
Relationship.
relationshipnya
disebut
Identifying
 Weak entity selalu mempunyai total participation
constraint terhadap Identifying Owner. Contoh : entity
tanggungan keberadaannya bergantung pada karyawan.
Weak Entity (lanj)
nip
…………
karyawan
nama
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
 data proyek
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
hubungan keluarga (relationship).
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
 melengkapi user requirement diatas.
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 :
city
state
name
id
street
zip_code
address
customer
Tabel Customer
id name street city state zip_code
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.
Tabel Proyek
nama_proyek
no_proyek
no_proyek nama_proyek
lokasi
i
Tabel Lokasi_Proyek
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 relationshipnya dengan atribut kunci tamu (foreign key) berdasarkan atribut
kunci dari entity tersebut dan atribut kunci alternatif sebagai
primary key-nya.
Tabel Employee
employee_id employee_name
employee_name
N
employee_id
Tabel Supervision
employee
supervision
1
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
nip
Nama_dos
Dosen
1
periode
Tabel kaprodi
mengepalai
1
periode kode_jur nip
Tabel Jurusan
Jurusan
kode_jur nama_jur
kode_jur
nama_jur
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
nip
nama_dos
Dosen
1
perwalian
Tabel Mahasiswa
N
mahasiswa
nim
nama_mhs
nim
nama_mhs
nip
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
nim nama_mhs
mahasiswa
N
semester
Tabel KRS
semester
nim kode_mk
mengambil
M
matakuliah
Tabel Matakuliah
kode_mk nama_mk
kode_mk
nama_mk
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.
Entity
Atribut
Film
judul, jml_keping, jml_film
KelompokFilm jenis, harga_sewa
Customer
no_identitas, jenis_identitas, nama,
alamat
3. Menentukan primary key dari setiap entity.
Entity
Atribut
Film
kode_film, judul, jml_keping, jml_film
KelompokFilm jenis, harga_sewa
Customer
no_identitas, jenis_identitas, nama, alamat
Tahap Pembuatan Entity
Relationship Diagram (lanj)
4. Menentukan relationship antar entity.
Entity
Film
Customer
Relationship
Entity
Dikelompokkan
KelompokFilm
Menyewa
Film
5. Menentukan atribut-atribut dari setiap relationship (jika ada).
Relationship
Atribut
dikelompokkan -
Menyewa
tgl_sewa, total_film, tgl_kembali,
total_harga, denda
Tahap Pembuatan Entity
Relationship Diagram (lanj)
6. Menentukan Cardinality Rasio.
Entity
Film
Customer
Relationship
Entity
dikelompokkan KelompokFilm
Menyewa
Film
Cardinality Rasio
N:1
N:M
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 Diagram
Rental VCD FILM
judul
harga_sewa
jenis
kode_film
jml_keping
dikelompokkan
kelompokfilm 1
N
Film
jml_film
N
jenis_identitas
no_identitas
Customer
nama
tgl_sewa
total_harga
M
alamat
total_film
menyewa
tgl_kembali
denda
Download